Pisanie pierwszej aplikacji!
Poznajmy razem Nette Framework, tworząc prosty blog z komentarzami. Zaczynajmy!
Już po pierwszych dwóch rozdziałach będziemy mieli swój własny działający blog i będziemy mogli publikować swoje wspaniałe posty, chociaż funkcje będą na razie w znacznym stopniu ograniczone. Powinieneś przeczytać również następne rozdziały, gdzie zaprogramujemy dodawanie komentarzy, edytowanie artykułów i na koniec zabezpieczymy blog.
Ten poradnik zakłada, że przeczytałeś stronę Instalacja i pomyślnie przygotowałeś potrzebne narzędzia. Zakłada również, że rozumiesz programowanie obiektowe w PHP.
Używaj PHP 8.1 lub nowszej wersji. Kompletną aplikację znajdziesz na GitHubie.
Strona powitalna
Zacznijmy od utworzenia nowego projektu w katalogu nette-blog
:
composer create-project nette/web-project nette-blog
W tym momencie powinna już działać strona startowa Web Projectu. Wypróbujemy to, otwierając przeglądarkę pod następującym adresem URL:
http://localhost/nette-blog/www/
i zobaczymy stronę startową Nette Frameworku:

Aplikacja działa i możesz zacząć wprowadzać zmiany.
Jeśli wystąpił problem, wypróbuj te wskazówki.
Zawartość Web Project
Web Project ma następującą strukturę:
nette-blog/ ├── app/ ← katalog aplikacji │ ├── Core/ ← podstawowe klasy niezbędne do działania │ ├── Presentation/ ← presentery, szablony itp. │ │ └── Home/ ← katalog presentera Home │ └── Bootstrap.php ← klasa startowa Bootstrap ├── bin/ ← skrypty uruchamiane z linii poleceń ├── config/ ← pliki konfiguracyjne ├── log/ ← logowanie błędów ├── temp/ ← pliki tymczasowe, cache, … ├── vendor/ ← biblioteki zainstalowane przez Composer │ └── autoload.php ← autoloading wszystkich zainstalowanych pakietów └── www/ ← katalog publiczny - jedyny dostępny z przeglądarki └── index.php ← plik początkowy, który uruchamia aplikację
Katalog www/
jest przeznaczony do przechowywania obrazów, plików JavaScript, stylów CSS i innych publicznie
dostępnych plików. Tylko ten katalog jest dostępny z internetu, więc ustaw katalog główny swojej aplikacji tak, aby
wskazywał właśnie tutaj (można to ustawić w konfiguracji Apache lub nginx, ale zróbmy to później, teraz to nie jest
ważne).
Najważniejszy folder dla nas to app/
. Tutaj znajdziemy plik Bootstrap.php
, w którym znajduje się
klasa służąca do załadowania całego frameworka i ustawienia aplikacji. Aktywuje się tutaj autoloading, ustawia się tutaj debugger i routing.
Sprzątanie
Web Project zawiera stronę startową, którą usuniemy, zanim zaczniemy coś programować. Bez obaw zastąpimy więc
zawartość pliku app/Presentation/Home/default.latte
tekstem “Witaj świecie!”.

Tracy (debugger)
Niezwykle ważnym narzędziem do rozwoju jest narzędzie do debugowania Tracy.
Spróbuj wywołać jakiś błąd w pliku app/Presentation/Home/HomePresenter.php
(np. usuwając nawias klamrowy w
definicji klasy HomePresenter) i zobacz, co się stanie. Pojawi się strona z powiadomieniem, która w zrozumiały sposób
opisuje błąd.

Tracy ogromnie nam pomoże, gdy będziemy szukać błędów w aplikacji. Zwróć również uwagę na pływający pasek Tracy Baru w prawym dolnym rogu ekranu, który zawiera informacje z działania aplikacji.

W trybie produkcyjnym Tracy jest oczywiście wyłączona i nie wyświetla żadnych wrażliwych informacji. Wszystkie błędy
są w tym przypadku zapisywane w folderze log/
. Spróbujmy to zrobić. W pliku app/Bootstrap.php
odkomentujemy następujący wiersz i zmienimy parametr wywołania na false
, aby kod wyglądał tak:
...
$this->configurator->setDebugMode(false);
...
Po odświeżeniu strony już nie zobaczymy Tracy. Zamiast niej wyświetli się przyjazna dla użytkownika wiadomość:

Teraz spójrzmy do katalogu log/
. Tutaj (w pliku exception.log
) znajdziemy zalogowany błąd, a
także już znaną stronę z komunikatem o błędzie (zapisaną jako plik HTML o nazwie zaczynającej się od
exception-
).
Zakomentujemy ponownie wiersz // $configurator->setDebugMode(false);
. Tracy automatycznie włączy tryb
deweloperski na localhost i wyłączy go wszędzie indziej.
Błąd, który stworzyliśmy, możemy naprawić i kontynuować pisanie aplikacji.
Wyślij podziękowania
Pokażemy Ci sztuczkę, którą ucieszysz autorów open source. W prosty sposób dasz na GitHubie gwiazdkę bibliotekom, których używa Twój projekt. Wystarczy uruchomić:
composer thanks
Spróbuj!