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

Запознайте се с рамката 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 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

Опитайте!