Створіть свій перший додаток!

Познайомтеся з фреймворком Nette, створивши простий блог із коментарями. Давайте почнемо!

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

Цей посібник припускає, що ви заповнили інсталяційний документ і успішно налаштували ваш інструментарій. Також передбачається, що ви розумієте об'єктно-орієнтоване програмування на PHP.

Будь ласка, використовуйте PHP 8.1 або новішу версію. Ви можете знайти повну версію програми на GitHub.

Вітальна сторінка

Почнемо зі створення нового проекту у каталозі nette-blog:

composer create-project nette/web-project nette-blog

У цей момент має бути запущена вітальна сторінка веб-проекту. Спробуйте відкрити її, відкривши браузер і перейшовши за наступною URL-адресою:

http://localhost/nette-blog/www/

і ви побачите сторінку вітання фреймворку:

Додаток працює, і тепер можна почати вносити в нього зміни.

Якщо у вас виникли проблеми, спробуйте скористатися кількома порадами.

Зміст веб-проекту

Наш проект має таку структуру:

nette-blog/
├── app/              ← каталог приложения
│   ├── Presenters/   ← классы презентеров
│   │   └── templates/← шаблоны
│   ├── Router/       ← конфигурация адресов URL
│   └── Bootstrap.php ← загрузочный класс Bootstrap
├── bin/              ← скрипты для командной строки
├── config/           ← конфигурационные файлы
├── log/              ← журналы ошибок
├── temp/             ← временные файлы, кэш, …
├── vendor/           ← библиотеки, установленные через Composer
│   └── autoload.php  ← автозагрузка библиотек, установленных Composer
└── www/              ← общая папка — единственное место, доступное из браузера
    └── index.php     ← начальный файл, запускающий приложение

Каталог www призначений для зберігання зображень, JavaScript, CSS та інших загальнодоступних файлів. Це єдиний каталог, доступний безпосередньо з браузера, тому ви можете вказати тут кореневий каталог вашого веб-сервера (можна налаштувати його в Apache, але давайте зробимо це пізніше, оскільки зараз це не важливо).

Найбільш важливим каталогом для вас є app/. Там можна знайти файл Bootstrap.php, усередині якого міститься клас, що завантажує фреймворк і конфігурує додаток. Він активує автозавантаження та встановлює налагоджувач і маршрути.

Очищення

Веб-проект містить сторінку привітання, яку ми можемо видалити – сміливо замініть вміст файлу app/Presenters/templates/Home/default.latte текстом Hello world!.

Tracy (відладчик)

Надзвичайно важливим інструментом для розробки є відладчик під назвою Tracy. Спробуйте зробити кілька помилок у вашому файлі app/Presenters/HomePresenter.php (наприклад, видаліть фігурну дужку з визначення класу HomePresenter) і подивіться, що станеться. З'явиться сторінка з червоним екраном і зрозумілим описом помилки.

debugger screen

Tracy суттєво допоможе вам у пошуку помилок. Також зверніть увагу на плаваючу панель Tracy Bar у правому нижньому кутку, яка інформує вас про важливі дані під час виконання.

У виробничому режимі Tracy, зрозуміло, вимкнена і не розкриває жодної конфіденційної інформації. Усі помилки зберігаються в директорії log/. Просто спробуйте. У файлі app/Bootstrap.php знайдіть наступний шматок коду, відкоментуйте рядок і змініть параметр виклику методу на false, щоб він мав такий вигляд:

...
$configurator->setDebugMode(false);
$configurator->enableTracy(__DIR__ . '/../log');
...

Після оновлення веб-сторінки сторінка з червоним екраном зміниться зручним для користувача повідомленням:

error screen

Тепер загляньте в каталог log/. Ви можете знайти там журнал помилок (у файлі exception.log), а також сторінку з повідомленням про помилку (збережену в HTML-файлі з ім'ям, що починається з exception).

Прокоментуйте рядок // $configurator->setDebugMode(false); ще раз. Tracy автоматично вмикає режим розробки в оточенні localhost і вимикає його в інших місцях.

Тепер ми можемо виправити помилку і продовжити розробку нашого додатка.

Надішліть подяку

Ми покажемо вам трюк, який порадує авторів відкритих вихідних кодів. Ви можете легко присвоїти зірку на GitHub бібліотекам, які використовує ваш проект. Просто наберіть у консолі:

composer thanks

Спробуйте!