Nette Documentation Preview

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

.[perex]
Запознайте се с рамката Nette, като създадете прост блог с коментари. Да започнем!

След първите две глави ще имате свой собствен работещ блог и ще сте готови да публикувате страхотни публикации, въпреки че функциите ще бъдат доста ограничени след приключването на тези две глави. За да направите нещата по-приятни за вашите потребители, трябва да прочетете и следващите глави и да продължите да подобрявате приложението си.

.[tip]
Този урок предполага, че сте завършили документа [Инсталиране |nette:installation] и успешно сте настроили инструментите си. Предполага се също, че разбирате [обектно-ориентираното програмиране в PHP |nette:introduction-to-object-oriented-programming].

Моля, използвайте PHP 8.1 или по-нова версия. Можете да намерите пълното приложение [в GitHub |https://github.com/nette-examples/quickstart/tree/v4.0].


Страницата за добре дошли .[#toc-the-welcome-page]
==================================================

Нека започнем със създаването на нов проект в директорията `nette-blog`:

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

В този момент трябва да се стартира началната страница на уеб проекта. Опитайте я, като отворите браузъра си и отидете на следния URL адрес:

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

и ще видите началната страница на рамката:

[* qs-welcome.webp .{url: http://localhost/nette-blog/www/} *]

Приложението е готово и вече можете да започнете да правите промени в него.

.[note]
Ако имате проблеми, [можете да опитате няколко съвета |nette:troubleshooting#Nette-Is-Not-Working-White-Page-Is-Displayed].


Съдържание на уеб проекта .[#toc-web-project-s-content]
=======================================================

Нашият проект има следната структура:

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

Директорията `www` е предназначена за съхранение на изображения, JavaScript, CSS и други публични файлове. Това е единствената директория, достъпна директно от браузъра, така че тук можете да посочите коренната директория на вашия уеб сървър (можете да я настроите в Apache, но нека го направим по-късно, тъй като сега това не е важно).

Най-важната директория за вас е `app/`. Там ще намерите файла `Bootstrap.php`, в който ще намерите клас, който зарежда рамката и конфигурира приложението. Той активира [автозадаващото устройство |robot-loader:] и настройва [дебъгъра |tracy:] и [маршрутите |application:routing].


Почистване .[#toc-cleanup]
==========================

Уеб проектът съдържа начална страница, която можем да премахнем - не се колебайте да замените съдържанието на файла `app/UI/Home/default.latte` с текста `Hello world!`.


[* qs-hello.webp .{url:-} *]


Tracy (дебъгер) .[#toc-tracy-debugger]
======================================

Изключително важен инструмент за разработка е [дебъгер, наречен Tracy. |tracy:] Опитайте се да направите някои грешки във вашия файл `app/UI/Home/HomePresenter.php` (например да премахнете къдравата скоба от дефиницията на класа HomePresenter) и вижте какво ще се случи. Ще се появи страница с червен екран и разбираемо описание на грешката.

[* qs-tracy.avif .{url:-}(debugger screen) *]

Трейси ще ви помогне значително да откриете грешките. Обърнете внимание и на плаващата лента Tracy Bar в долния десен ъгъл, която ви информира за важни данни по време на работа.

[* qs-tracybar.webp .{url:-} *]

В производствен режим Tracy, разбира се, е деактивирана и не разкрива никаква чувствителна информация. Всички грешки се записват в директорията `log/`. Просто опитайте. Във файла `app/Bootstrap.php` намерете следната част от кода, коментирайте реда и променете параметъра за извикване на метода на `false`, така че да изглежда по следния начин

```php .{file:app/Bootstrap.php}
...
$configurator->setDebugMode(false);
$configurator->enableTracy(__DIR__ . '/../log');
...
```

Когато уебстраницата се опресни, червеният екран на страницата ще се промени на удобно за потребителя съобщение:

[* qs-fatal.webp .{url:-}(error screen) *]

Сега погледнете в директорията `log/`. Там ще намерите дневник на грешките (във файла exception.log), както и страница за грешки (записана в HTML файл с име, започващо с `exception`).

Изтрийте отново реда `// $configurator->setDebugMode(false);`. Tracy автоматично активира режима за разработка в средата `localhost` и го деактивира другаде.

Сега можем да поправим грешката и да продължим да разработваме нашето приложение.


Изпратете благодарности до .[#toc-send-thanks]
==============================================

Ще ви покажем един трик, който ще зарадва авторите на софтуер с отворен код. Можете лесно да присвоите звезда в GitHub на библиотеките, които използват вашия проект. Просто въведете в конзолата:

```shell
composer thanks
```

Опитайте!

{{priority: -1}}
{{sitename: Быстрый старт с Nette}}

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

Запознайте се с рамката 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/              ← каталог приложения
│   ├── Core/         ← основни необходими класове
│   ├── UI/           ← презентатори, шаблони и др.
│   │   └── Home/     ← Каталог на водещите
│   └── Bootstrap.php ← загрузочный класс Bootstrap
├── bin/              ← скрипты для командной строки
├── config/           ← конфигурационные файлы
├── log/              ← журналы ошибок
├── temp/             ← временные файлы, кэш, …
├── vendor/           ← библиотеки, установленные через Composer
│   └── autoload.php  ← автозагрузка библиотек, установленных Composer
└── www/              ← общая папка — единственное место, доступное из браузера
    └── index.php     ← начальный файл, запускающий приложение

Директорията www е предназначена за съхранение на изображения, JavaScript, CSS и други публични файлове. Това е единствената директория, достъпна директно от браузъра, така че тук можете да посочите коренната директория на вашия уеб сървър (можете да я настроите в Apache, но нека го направим по-късно, тъй като сега това не е важно).

Най-важната директория за вас е app/. Там ще намерите файла Bootstrap.php, в който ще намерите клас, който зарежда рамката и конфигурира приложението. Той активира автозадаващото устройство и настройва дебъгъра и маршрутите.

Почистване

Уеб проектът съдържа начална страница, която можем да премахнем – не се колебайте да замените съдържанието на файла app/UI/Home/default.latte с текста Hello world!.

Tracy (дебъгер)

Изключително важен инструмент за разработка е дебъгер, наречен Tracy. Опитайте се да направите някои грешки във вашия файл app/UI/Home/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

Опитайте!