Nette je open source framework určený pro tvorbu webových aplikací v PHP. Jeho posláním je především eliminace bezpečnostních rizik. Podporuje AJAX, DRY, KISS, MVC a znovupoužitelnost kódu. Používá událostmi řízené programování a ze značné míry je založen na použití komponent. Původní autor frameworku je David Grudl, jeho následný vývoj má na starost organizace Nette Foundation. Nette Framework je open source software, který je nabízen pod licencemi GNU GPL a licencí Nette, která je alternativou původní čtyřdobé BSD licence.

Routování

Nette Framework umožňuje na rozdíl od většiny konkurenčních frameworků nastavit tvar URL jako poslední bod přípravy celé aplikace. Díky tomu je možnost oboustranného zpracování routů, které je používané k parsování i generování cest.

„Pěkné“ URL je zároveň podstatnou vlastností při tvorbě optimalizace pro vyhledávače (SEO), protože vyhledávače tyto adresy vyhodnocují a kontrola nad URL se pak stává součástí bodování důležitosti webu. To má vliv na pozici ve vyhledávači, přestože někteří odborníci se snažili tvrdit, že URL na pozici ve vyhledávání vliv nemá. Adresy zároveň mohou být čitelnější, což je dělá zapamatovatelnějšími pro uživatele stránek. Nette odstiňuje využití direktiv mod_rewrite, díky tomu není potřeba definovat tvar rout na více místech. Pomáhá to v prevenci chyb.

Logování chyb

Pro případ produkčního režimu, ve kterém není vhodné a dokonce ani žádoucí využívat obvyklé metody výpisu chyb, umožňuje Nette zachycovat vzniklé chyby do logu. Log je textový soubor, který zaznamenává, co se v aplikaci přesně stalo a následně chyby opravovat. Logování chyb je nutné zapnout a nastavit cestu k adresáři, do kterého je možné logy ukládat.

Dva režimy Nette

Nette dokáže operovat ve dvou rozdílných režimech, pod kterými běží server. Vývojový režim je režim, který nabízí veškeré informace pro programátora, co se týče rychlosti běhu aplikace, routování a pohodlného výpisu vzniklých chyb. Nette v produkčním režimu veškeré tyto informace skrývá a umožňuje logování chyb do samostatného logovacího souboru mimo dosah běžného uživatele.

Framework dokáže sám rozpoznávat, ve kterém z režimů se server nachází. Rozhodnutí vzniká na základě IP adresy přiděleného serveru. Chybu může působit využití serveru běžícího za proxy serverem nebo server, který je určen pouze pro lokální potřeby organizace. V případě chybného rozpoznání je nutné nastavit režim ručně.

Výhody použití Nette Framework

  • Silný validační jazyk. Nette dává programátorům silný nástroj na vytváření formulářů. Framework sám o sobě dokáže ohlídat veškeré prvky formuláře i hlídat vstupy proti možným útokům, například XSS, Cross-Site Request Forgery nebo UTF-8 útok.
  • Automatické generování validačního JavaScriptu. Validaci není nutné vypisovat, je vygenerována automaticky.
  • Přesná definice podoby formuláře. Programátor má plnou kontrolu nad vzhledem formuláře.
  • Automatický překlad. Nette podporuje automatické překládání.
  • Ochrana proti SQL injection. V případě využití notORM databáze obsahuje Nette i silnou ochranu proti SQL injection.

Nevýhody použití Nette Framework

  • Ruční promazávání cache. Čas od času je nutné ručně cache promazat.
  • Dokumentace. Dokumentace není příliš obsáhlá a nepokrývá zdaleka všechny oblasti. Autor tuto skutečnost částečně kompenzuje pořádáním školení. Zároveň organizuje i neformální setkání příznivců.
  • Chybějící Best Practice. Neexistují příklady, jak implementovat modelovou vrstvu.
  • Databázová vrstva. Chování databázové vrstvy se výrazně liší v případě tabulek bez primárního klíče.