Nette Application

Nette Application є ядром фреймворку Nette, яке надає потужні інструменти для створення сучасних веб-застосунків. Воно пропонує низку виняткових функцій, які значно полегшують розробку та покращують безпеку й підтримуваність коду.

Встановлення

Бібліотеку можна завантажити та встановити за допомогою інструменту Composer:

composer require nette/application

Чому варто обрати Nette Application?

Nette завжди був піонером у галузі веб-технологій.

Двосторонній роутер: Nette має вдосконалену систему маршрутизації, яка є унікальною завдяки своїй двосторонності — вона не тільки перетворює URL-адреси на дії застосунку, але й може генерувати URL-адреси у зворотному напрямку. Це означає, що:

  • Ви можете будь-коли змінити структуру URL-адрес усього застосунку без необхідності редагувати шаблони
  • URL-адреси автоматично канонізуються, що покращує SEO
  • Маршрутизація визначається в одному місці, а не розкидана по анотаціях

Компоненти та сигнали: Вбудована система компонентів, натхненна Delphi та React.js, є абсолютно унікальною серед PHP-фреймворків:

  • Дозволяє створювати багаторазові UI-елементи
  • Підтримує ієрархічне складання компонентів
  • Пропонує елегантну обробку AJAX-запитів за допомогою сигналів
  • Багата бібліотека готових компонентів на Componette

AJAX та сніпети: Nette представив революційний спосіб роботи з AJAX ще у 2009 році, задовго до появи подібних рішень, таких як Hotwire для Ruby on Rails або Symfony UX Turbo:

  • Сніпети дозволяють оновлювати лише частини сторінки без необхідності писати JavaScript
  • Автоматична інтеграція з компонентною системою
  • Розумна інвалідація частин сторінок
  • Мінімальна кількість переданих даних

Інтуїтивні шаблони Latte: Найбезпечніша система шаблонів для PHP з розширеними функціями:

  • Автоматичний захист від XSS за допомогою контекстно-залежного екранування
  • Розширюваність за допомогою власних фільтрів, функцій та тегів
  • Спадкування шаблонів та сніпети для AJAX
  • Відмінна підтримка PHP 8.x з системою типів

Dependency Injection: Nette повністю використовує Dependency Injection:

  • Автоматична передача залежностей (autowiring)
  • Конфігурація за допомогою зрозумілого формату NEON
  • Підтримка фабрик для компонентів

Основні переваги

  • Безпека: Автоматичний захист від вразливостей, таких як XSS, CSRF тощо.
  • Продуктивність: Менше коду, більше функцій завдяки розумному дизайну
  • Налагодження: Tracy debugger з панеллю маршрутизації
  • Швидкодія: Розумний кеш, ліниве завантаження компонентів
  • Гнучкість: Легка зміна URL-адрес навіть після завершення розробки застосунку
  • Компоненти: Унікальна система багаторазових UI-елементів
  • Сучасність: Повна підтримка PHP 8.4+ та системи типів

Починаємо

  1. Як працюють застосунки? – Розуміння базової архітектури
  2. Presenters – Робота з презентерами та діями
  3. Шаблони – Створення шаблонів у Latte
  4. Маршрутизація – Конфігурація URL-адрес
  5. Інтерактивні компоненти – Використання компонентної системи

Сумісність з PHP

версія сумісна з PHP
Nette Application 4.0 PHP 8.1 – 8.4
Nette Application 3.2 PHP 8.1 – 8.4
Nette Application 3.1 PHP 7.2 – 8.3
Nette Application 3.0 PHP 7.1 – 8.0
Nette Application 2.4 PHP 5.6 – 8.0

Застосовується до останньої версії патчу.

версія: 4.0