Пишем первое приложение!
Давайте познакомимся с Nette Framework, создавая простой блог с комментариями. Начнем!
Уже после первых двух глав у нас будет свой собственный работающий блог, и мы сможем публиковать свои замечательные посты, хотя функциональность пока будет в значительной степени ограничена. Вам также следует прочитать следующие главы, где мы запрограммируем добавление комментариев, редактирование статей и, наконец, обезопасим блог.
Это руководство предполагает, что вы прочитали страницу Установка и успешно подготовили необходимые инструменты. Также предполагается, что вы понимаете объектно-ориентированное программирование в PHP.
Пожалуйста, используйте PHP 8.1 или новее. Полное приложение можно найти на GitHub.
Приветственная страница
Начнем с создания нового проекта в каталоге nette-blog
:
composer create-project nette/web-project nette-blog
В этот момент стартовая страница Web Project уже должна работать. Проверим это, открыв браузер по следующему URL-адресу:
http://localhost/nette-blog/www/
и увидим стартовую страницу Nette Framework:

Приложение работает, и вы можете начать вносить изменения.
Если возникла проблема, попробуйте эти советы.
Содержимое Web Project
Web Project имеет следующую структуру:
nette-blog/ ├── app/ ← каталог приложения │ ├── Core/ ← базовые классы, необходимые для работы │ ├── Presentation/ ← презентеры, шаблоны и т.п. │ │ └── Home/ ← каталог презентера Home │ └── Bootstrap.php ← загрузочный класс Bootstrap ├── bin/ ← скрипты, запускаемые из командной строки ├── config/ ← конфигурационные файлы ├── log/ ← логирование ошибок ├── temp/ ← временные файлы, кеш, … ├── vendor/ ← библиотеки, установленные Composer │ └── autoload.php ← автозагрузка всех установленных пакетов └── www/ ← публичный каталог - единственный доступный из браузера └── index.php ← начальный файл, с которого запускается приложение
Каталог www/
предназначен для хранения изображений,
JavaScript-файлов, CSS-стилей и других общедоступных файлов. Только этот
каталог доступен из интернета, поэтому настройте корневой каталог
вашего приложения так, чтобы он указывал именно сюда (это можно
настроить в конфигурации Apache или nginx, но давайте сделаем это позже,
сейчас это не важно).
Самая важная папка для нас — app/
. Здесь мы найдем файл
Bootstrap.php
, в котором находится класс, служащий для загрузки всего
фреймворка и настройки приложения. Здесь активируется автозагрузка, настраивается отладчик и маршруты.
Очистка
Web Project содержит стартовую страницу, которую мы удалим перед тем, как
начнем что-либо программировать. Без опасений заменим содержимое
файла app/Presentation/Home/default.latte
на “Hello world!”.

Tracy (отладчик)
Чрезвычайно важный инструмент для разработки — инструмент отладки Tracy. Попробуйте вызвать
какую-нибудь ошибку в файле app/Presentation/Home/HomePresenter.php
(например,
удалив фигурную скобку в определении класса HomePresenter) и посмотрите, что
произойдет. Появится страница уведомления, которая понятно описывает
ошибку.

Tracy нам очень поможет, когда мы будем искать ошибки в приложении. Также обратите внимание на плавающий Tracy Bar в правом нижнем углу экрана, который содержит информацию о выполнении приложения.

В production-режиме Tracy, конечно, отключена и не отображает никакой
конфиденциальной информации. Все ошибки в этом случае сохраняются в
папке log/
. Давайте попробуем это. В файле app/Bootstrap.php
раскомментируем следующую строку и изменим параметр вызова на
false
, чтобы код выглядел так:
...
$this->configurator->setDebugMode(false);
...
После обновления страницы мы больше не увидим Tracy. Вместо нее отобразится дружественное пользователю сообщение:

Теперь посмотрим в каталог log/
. Здесь (в файле exception.log
) мы
найдем залогированную ошибку, а также уже знакомую страницу с
сообщением об ошибке (сохраненную как HTML-файл с именем, начинающимся на
exception-
).
Снова закомментируем строку // $configurator->setDebugMode(false);
. Tracy
автоматически включает режим разработки на localhost и отключает
его везде.
Ошибку, которую мы создали, можно исправить и продолжить писать приложение.
Отправьте благодарность
Мы покажем вам трюк, которым вы порадуете авторов open source. Простым способом вы можете поставить звездочку на GitHub библиотекам, которые использует ваш проект. Достаточно запустить:
composer thanks
Попробуйте!