Začínáme
Seznamte se v rychlosti s Nette Frameworkem při tvorbě jednoduchého úkolovníku. Ukážeme si, jak vytvořit bezpečnou aplikaci včetně přihlašování s využitím databáze, šablon, formulářů, routování i AJAXu.
Co všechno bude náš úkolovník umět?
- sdružovat úkoly do samostatných seznamů
- přidávat nové úkoly i nové seznamy
- označit úkol jako dokončený (pomocí AJAXu)
- přihlásit uživatele a odeslat zapomenuté heslo
Stažení
Nejprve si prosím ověřte, že máte spuštěný webový server s PHP ve verzi 5.3.0 nebo jakoukoliv vyšší.
Stáhneme si Nette Framework a tzv. sandbox, což je předpřipravená kostra aplikace. Pokud používáte nástroj Composer, stačí spustit v kořenovém adresáři webového serveru tento příkaz
a sandbox i s frameworkem se vám stahnou do adresáře sandbox:
php composer.phar create-project nette/sandbox [cílová.složka] dev-release-2.0.x
nebo pokud máte Composer nainstalovaný, bude stačit i kratší zápis
composer create-project nette/sandbox [cílová.složka]
Nebo si stáhněte Nette Framework ručně a archív rozbalte. Obsahuje řadu
složek, které jsou popsány jinde, nás teď bude zajímat pouze zmíněný
sandbox. Ten zkopírujte do kořenového adresáře webového serveru.
Otevřete v prohlížeči adresu:
http://localhost/sandbox/www/
a Nette Framework vás s gratulací přivítá:

Pohled do sandboxu
Pojďme sandbox nejprve trošku prozkoumat:
www/ ← kořenový adresář webového serveru
└── sandbox/
├── app/ ← místo pro naši aplikaci
│ ├── config/ ← konfigurační soubory
│ ├── model/ ← třídy modelové vrstvy
│ ├── presenters/ ← třídy presenterů
│ ├── router/ ← továrna na routy
│ ├── templates/ ← šablony
│ └── bootstrap.php ← zaváděcí soubor
│
├── libs/ ← knihovny, které bude naše aplikace využívat
│ └── Nette/ ← jako třeba váš oblíbený framework :-)
│
├── log/ ← zde se v produkčním módu logují chybová hlášení
├── temp/ ← místo pro dočasné soubory cache nebo session
├── test/ ← unit testy naší aplikace
└── www/ ← složka veřejně přístupná z webu
Složka www je určena pro obrázky, JavaScripty, CSS a další veřejně dostupné zdroje. Je jako jediná
přístupná z prohlížeče, proto si sem můžete namířit kořenový adresář webového serveru.
Pokud používáte Linux nebo Mac OS X, bude potřeba nastavit oprávnění pro zápis do složek temp a
log. Nejsnázeji příkazem chmod -R a+rwX temp log.
Nás bude především zajímat složka app, ve které budeme programovat. V ní se nachází soubor
bootstrap.php, vstupní bod aplikace. Stará se o načtení frameworku a konfigurace, aktivuje automatické načítání tříd a spustí aplikaci.
Z hlediska konfigurace aplikace je ještě důležitý soubor RouterFactory.php ve složce
app/router/, který se stará o nastavení routování.
Routování říká, jakou přesně mají mít URL adresy podobu. Výhoda Nette Frameworku je, že tvar URL můžete změnit
kdykoliv a velice snadno, proto se routování budeme věnovat až ve chvíli, kdy budeme mít celou aplikaci naprogramovanou.
Laděnka
Nesmírně důležitým nástrojem při vývoji je Debugger, někdy
přezdívaný Laděnka. Schválně si zkuste otevřít soubor app/presenters/HomepagePresenter.php a udělat v něm
nějakou chybu, třeba smazat písmenko ze slova class. Pokud spouštíte aplikaci lokálně, objeví se vám
srozumitelná červená stránka a hned jste v obraze. (Pokud spouštíte aplikaci na vzdáleném serveru, čtěte dál.)

Laděnka vám neuvěřitelným způsobem usnadní práci při hledání chyb. Také si všimněte plovoucího Debugger baru v pravé spodní části, který vás informuje o důležitých běhových údajích.
Nette může běžet v buď v produkčním, nebo v debug módu. V produkčním prostředí Laděnka pochopitelně žádné citlivé údaje neprozrazuje a namísto toho je loguje. Debug mode se zapne, pokud k aplikaci přistupujete lokálně; naopak na serveru je mód produkční.
Debug mód lze natvrdo zapnout či vypnout (např. pro zapnutí debug módu lokálně, či naopak) v souboru
bootstrap.php:
$configurator->setDebugMode(false); // <- tento řádek je klíčový, vypne debug i lokálně
//$configurator->setDebugMode(['93.184.216.119', '2606:2800:220:6d:26bf:1447:1097:aa7']); // <- tento řádek zapne debug pouze pro dané IP adresy
$configurator->enableTracy(__DIR__ . '/../log');
V produkčním módu je potom červená obrazovka nahrazená uživatelsky srozumitelnou zprávou (můžete to sami zkusit
úpravou bootstrap.php a znovunačtením):

Podívejte se do adresáře log, kde jednak najdete v souboru error.log stručnou zprávu
o chybě, ale také celou červenou stránku uloženou v souboru, jehož název začíná slovem exception.
Řádek $configurator->setDebugMode(false); opět zakomentujte a Laděnka bude debug-mód zapínat lokálně
automaticky. Všude jinde bude vypnutý.
Nyní, vyzbrojeni základními znalostmi, se můžeme pustit do návrhu databáze a modelu.