Создайте свое первое приложение!

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

После первых двух глав у вас будет свой собственный работающий блог, и вы будете готовы публиковать свои потрясающие посты, хотя после завершения этих двух глав возможности будут довольно ограничены. Чтобы пользователям было приятнее, вам также следует прочитать следующие главы и продолжать совершенствовать свое приложение.

Вы можете найти законченное приложение на GitHub.

Пожалуйста, установите полнофункциональную IDE и все необходимые плагины, это сделает вас чрезвычайно эффективным.

Это краткое руководство было написано для фреймворка Nette 3.1 и PHP 8.0 или более новой версии.

Можно загрузить фреймворк Nette вручную, но рекомендуемым способом запуска нового проекта является использование Composer. Если вы не знаете Composer, вам определенно стоит начать с него. Это действительно простой и полезный инструмент, ознакомьтесь с его документацией.

С помощью Composer вы можете легко загрузить и установить каркас приложения, известный как Web Project, включая Nette Framework. Для этого найдите ваш корневой каталог (например, /var/www или C:\InetPub) в командной строке и выполните следующую команду:

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

Веб-проект будет загружен в каталог nette-blog.

Если вы не смогли использовать Composer, скачайте и распакуйте архив, скопируйте его в корневой каталог веб-сервера и переименуйте в nette-blog. Весь фреймворк находится в папке vendor.

Если вы разрабатываете на macOS или Linux (или любой другой системе на базе Unix), вам необходимо настроить права на запись на веб-сервере.

Приветственная страница

На данном этапе вы уже можете увидеть страницу приветствия веб-проекта. Попробуйте это сделать, открыв браузер и перейдя по следующему 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/Homepage/default.latte текстом Hello world!.

Tracy (отладчик)

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

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

Попробуйте!