Začínáme

Seznamte se s Nette Frameworkem a vytvořte si svoji první aplikaci.

Úplně první věc, kterou bychom měli udělat, je zkontrolovat, zda náš server splňuje požadavky pro běh Nette Frameworku. To by s největší pravděpodobností mělo být v pořádku, ale jen pro jistotu, nechceme začínat na nefunkčním prostředí.

Nette Framework můžeme stáhnout manuálně, ale doporučená cesta je začít nový projekt s využitím Composeru. Pokud Composer neznáte, určitě byste měli začít s ním. Je to velice jednoduchý a užitečný nástroj, vše se dozvíte v dokumentaci Composeru.

S Composerem si můžeme velmi jednoduše stáhnout a nainstalovat základní skeleton aplikace, známý jako Web Project, který již obsahuje Nette Framework. Abychom mohli založit projekt, najdeme si kořenový adresář webového serveru (např. /var/www nebo C:\InetPub) a pomocí příkazové řádky a spustíme následující příkaz.

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

Web Project se následně stáhne do složky nette-blog.

Pokud nechcete použít Composer, stáhněte si archív a rozbalte jej a zkopírujte do kořenového adresáře webového serveru a přejmenujte na nette-blog. Framework se nachází ve složce vendor.

Pokud vyvíjíte na Mac OS X nebo na Linuxu (nebo na jakémkoliv jiném systému založeném na Unixu), budeme muset ještě nastavit práva zápisu webovému serveru.

cd nette-blog && chmod -R a+rw temp log

Na některých Linuxech (Fedora, CentOS, …), je standardně zapnutý SELinux. Budete muset patřičně upravit SELinux policies, anebo nastavit správný SELinux security context pro složky temp a log.

Úvodní stránka

V tento okamžik by měla již úvodní stránka Web Projectu fungovat. Vyzkoušíme to otevřením prohlížeče na následující URL adrese:

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

a uvidíme úvodní stránku Nette Frameworku:

Aplikace funguje a můžete začít dělat úpravy.

Obsah Web Projectu

Web Project má následující strukturu:

www/                      ← kořenový adresář webu
└── nette-blog/
    ├── app/              ← adresář webové aplikace
    │   ├── config/       ← konfigurační soubory
    │   ├── presenters/   ← třídy presenterů
    │   │   └── templates/← šablony
    │   ├── router/       ← konfigurace URL adres
    │   └── bootstrap.php ← spouštěcí soubor
    │
    ├── log/              ← zde naleznete chybové logy
    ├── temp/             ← místo pro dočasné soubory (cache, sessiony, atd.)
    │
    ├── vendor/           ← knihovny pro vaši aplikaci
    │   └── nette/        ← jako například váš oblíbený framework :-)
    │
    └── www/              ← místní kořenový adresář webu - pouze tento adresář je přístupný z internetu

Adresář www je určen pro ukládání obrázků, JavaScript souborů, CSS stylů a dalších veřejně přístupných souborů. Pouze tento adresář je přístupný z internetu, takže nastavte kořenový adresář vaší aplikace tak, aby směřoval právě sem (to můžete nastavit v konfiguraci Apache, ale pojďme to udělat později, teď to není důležité).

Nejdůležitější složka je pro nás app/. Zde nalezneme soubor bootstrap.php, který slouží k načtení celého frameworku a nastavení aplikace. Aktivuje se zde autoloading, nastaví se zde debugger a routy.

Úklid

Web Project obsahuje úvodní stránku, kterou smažeme předtím, než začneme něco programovat – bez obav tedy nahradíme obsah souboru app/presenters/templates/Homepage/default.latte za „Hello world!“.

Tracy (debugger)

Extrémně důležitý nástroj pro vývoj je ladicí nástroj Tracy. Vyzkoušejte si vyvolání nějaké chyby v souboru app/presenters/HomepagePresenter.php (např. odstraněním posledního písmene ze slova public v definici metody renderDefault) a podívejte se, co se stane. Vyskočí oznamovací stránka, která chybu srozumitelně popisuje.

debugger screen

Tracy nám ohromně pomůže, až budeme hledat chyby v aplikaci. Také si všimněte plovoucího debug panelu v pravém dolním rohu obrazovky, který obsahuje informace z běhu aplikace.

V produkčním módu je Tracy samozřejmě vypnuta a nezobrazuje žádné citlivé informace. Všechny chyby jsou v tomto případě uloženy ve složce log/. Pojďme si to vyzkoušet, v souboru app/bootstrap.php odkomentujeme následující řádek a změníme parametr volání na false, aby kód vypadal takto:

$configurator->setDebugMode(false);
$configurator->enableTracy(__DIR__ . '/../log');

Po obnovení stránky již Tracy neuvidíme. Místo ní se zobrazí uživatelsky přívětivá zpráva:

error screen

Nyní se podívejme do adresáře log/. Zde (v souboru exception.log) nalezneme zalogovanou chybu a také již známou stránku s chybovou hláškou (uloženou jako HTML soubor s názvem začínající na exception-).

Zakomentujeme opět řádek // $configurator->setDebugMode(false);. Tracy automaticky povolí debug režim na localhostu a zakáže ho všude jinde.

Chybu, kterou jsme vytvořili, můžeme opravit a pokračovat v psaní aplikace.