Nette Documentation Preview

syntax
Nette Application
*****************

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


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

Бібліотеку можна завантажити та встановити за допомогою інструменту [Composer|best-practices:composer]:

```shell
composer require nette/application
```


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

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

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

**Компоненти та сигнали:** Вбудована система компонентів, натхненна Delphi та React.js, є абсолютно унікальною серед PHP-фреймворків:
- Дозволяє створювати багаторазові UI-елементи
- Підтримує ієрархічне складання компонентів
- Пропонує елегантну обробку AJAX-запитів за допомогою сигналів
- Багата бібліотека готових компонентів на [Componette](https://componette.org)

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

**Інтуїтивні шаблони [Latte|latte:]:** Найбезпечніша система шаблонів для PHP з розширеними функціями:
- Автоматичний захист від XSS за допомогою контекстно-залежного екранування
- Розширюваність за допомогою власних фільтрів, функцій та тегів
- Спадкування шаблонів та сніпети для AJAX
- Відмінна підтримка PHP 8.x з системою типів

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


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

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


Починаємо
---------

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


Сумісність з 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

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

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

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