Nette Framework

Technology
12 hours ago
8
4
2
Avatar
Author
Albert Flores

Nette Framework je open source framework pro tvorbu webových aplikací v PHP. Zaměřuje se na eliminaci bezpečnostních rizik, podporuje AJAX, DRY, KISS, MVC a znovupoužitelnost kódu. Využívá událostmi řízené programování a z velké části je založen na použití komponent. Autorem Nette Frameworku je David Grudl, který se stará o jeho další rozvoj spolu s dalšími přispěvateli. Nette Framework je svobodný software, nabízený pod licencemi GNU GPL a licencí New BSD.

Během vývoje se do frameworku přidávaly další užitečné (ale ne nepostradatelné) nástroje, doplňky, komponenty apod. A tím zdrojový kód stále rostl. +more Navíc když chtěl vývojář použít např. jen formuláře, musel si stáhnout celý framework. Proto se framework ve verzi 2. 2 rozdělil do mnoha samostatných repozitářů.

Požadavky

Nette Framework 3. 0 vyžaduje PHP ve verzi 7. +more1 a vyšší, Nette 3. 1 PHP ve verzi 7. 2 a vyšší, nejnovější verze Nette 4. 0 pak PHP 8. 0 a vyšší. Další požadavky je možné otestovat na serveru pomocí oficiálního nástroje Requirements Checker.

Vlastnosti Nette Framework

Ladící nástroje * Aktivní komunita uživatelů v ČR * Podpora jmenných prostorů v PHP 5.3

Autoloading

NetteLoader

V produkčním prostředí stačí načíst jediný soubor.

RobotLoader

Využívá cache, je třeba nastavit její cestu * Inteligentní zneplatnění cache * V souboru netterobots.txt lze nastavit ignorované adresáře

$loader = new RobotLoader; $loader->addDirectory('libs'); $loader->register;

Eliminace a ladění chyb

Nette Framework poskytuje několik velmi silných nástrojů pro odhalování a ošetřování případných chyb.

Laděnka

Ladící nástroj na odchytávání chyb vzniklých během kompilace programu. Zpřehledňuje klasické chybové hlášky. +more Umožňuje tak efektivní ladění aplikace. Stačí využít NetteLoader a zapnout debug mód.

Připojení na FireBug

Komunikací FireBug a Nette\Debug umožňuje zasílat zprávy samostatným kanálem, mimo okno samotného prohlížeče. Informace se tedy neztratí v případné záplavě textů na stránce, ale zobrazí se přehledně v jiném okně. +more Chyby úrovně E_NOTICE a E_WARNING jsou do FireBug zasílány automaticky. Je nutné mít nainstalovaný FireFox alespoň verze 2. Stáhnout si rozšíření Firebug a FirePHP minimálně verzi 0. 2. Nette\Debug komunikuje s FireBug přes hlavičky HTTP. Je tedy nutné volat logovací funkci před tím než začne PHP skript cokoliv vypisovat. Samozřejmě je možné zapnout output buffering a tím výstup oddálit.

Konzole

Nette Debug console je vyskakovací okénko, do kterého je možné vypisovat proměnné.

Logování chyb

V případě produkčního režimu, kdy není vhodné ani žádoucí využívat některou z předchozích metod výpisu chyb nám dává Nette Framework nástroj k zachycení vzniklých chyb do logu. Textového souboru, kde se můžeme přesně dozvědět co se v aplikaci stalo a případné chyby opravit. +more Logování chyb je třeba zapnout a nastavit cestu k adresáři, do kterého je možné zapisovat.

Debug::enable(Debug::DETECT, '%logDir%/php_error.log', 'admin@example.com');

Parametr Debug::DETECT říká, že má Nette samo zjistit zda se server nachází v produkčním nebo vývojovém režimu. Další parametr je cesta k logovacím souborům a poslední je e-mailová adresa, kam se bude zasílat upozornění o vzniku chyby.

Vývojový nebo produkční režim

Nette rozlišuje 2 režimy, pod kterými běží server. Vývojový režim se snaží nabídnout veškeré informace pro programátora o rychlosti běhu aplikace, o routování a pohodlný výpis vzniklých chyb. +more Naproti tomu v produkčním režimu Nette veškeré informace skryje a umožňuje logování chyb do souboru mimo oči běžného uživatele.

Framework dokáže sám zjistit v jakém režimu se server nachází. Rozhoduje se na základě IP adresy přidělené serveru. +more Chybu může způsobit server běžící za proxy serverem, nebo server určený pro lokální potřeby organizace. V tomto případě je nutné nastavit aktuální režim ručně.

Debug::enable(Debug::DEVELOPMENT); Debug::enable(Debug::PRODUCTION);

Webové formuláře

Nette dává programátorovi velmi silný nástroj pro tvorbu formulářů. Samotný framework zařídí veškeré ohlídání prvků formuláře. Ohlídá vstupy proti možným útokům.

Přednosti Nette Framework

Obsahuje velmi silný validační jazyk * Automaticky generuje validační JavaScript * Plná moc nad vzhledem formulářů * Podpora automatického překladu * Ošetření proti útokům: XSS, Cross-Site Request Forgery, UTF-8 attack * Silná ochrana proti SQL injection, v případě používání notORM (Nette database)

$form = new Form; $form->addText('jmeno','Zadejte jméno') ->addRule(Form::FILLED,'Zadejte své jméno'); $form->addPassword('heslo','Zadejte své heslo') ->addRule(Form::FILLED,'Zadejte heslo'); $form->addSubmit('prihlasit','Přihlásit'); echo $form;

Nevýhody Nette Framework

Nutnost občas ručně promazat cache * Databázová vrstva se chová výrazně jinak pro tabulky bez primárního klíče

Routování, Cool URL

Na rozdíl od většiny jiných frameworků je možné nastavit tvar URL jako poslední věc v celé aplikaci. Umožňuje to obousměrné zpracování routů, které slouží jak k parsování tak generování cest. +more Pěkné URL (Cool URL) je důležité také pro SEO, vyhledávače adresy vyhodnocují a stává se součástí bodování důležitostí webu a ovlivňuje tak pozici ve vyhledávači. Zároveň jsou adresy čitelnější a zapamatovatelnější pro uživatele stránek. Nette odstiňuje použití direktiv mod_rewrite a tak není nutné definovat tvar rout na více místech. Tím se předchází vzniku chyb.

Podpora

K Nette Frameworku pořádá autor školení, která částečně mohou nahradit chybějící kusy dokumentace. Každý měsíc se také koná neformální setkání příznivců Nette Frameworku, nazývané [url=https://posobota. +morecz]Poslední sobota[/url] pořádané v Praze, Brně i na jiných místech.

Reference

Externí odkazy

Oficiální stránky frameworku

[url=https://nette. org/cs/]Oficiální stránka[/url] * [url=https://forum. +morenette. org/cs/]České fórum[/url] * [url=https://doc. nette. org/cs/]Dokumentace[/url] * [url=https://api. nette. org/]API dokumentace[/url] * [url=https://componette. org/]Doplňky, komponenty[/url] * [url=https://www. posobota. cz/]Poslední sobota[/url].

Články o frameworku

[url=http://zdrojak. root. +morecz/serialy/zaciname-s-nette-framework/]Zdrojak. cz: Seriál Začínáme s Nette Frameworkem[/url] * [url=http://www. root. cz/clanky/velky-test-php-frameworku-zend-nette-php-a-ror/]Root. cz: Velký test PHP frameworků: Zend, Nette, PHP a RoR[/url] * [url=https://web. archive. org/web/20090122041943/http://blog. php-group. cz/2008/04/01/prednaska-o-frameworku-nette-david-grudl/]Czech PHP User Group: Přednáška o frameworku Nette - David Grudl[/url] * [url=http://php. vrana. cz/unikatni-vlastnosti-nette. php]PHP triky: Unikátní vlastnosti Nette[/url].

Kategorie:Webové aplikační frameworky Kategorie:Software v PHP Kategorie:Svobodný software

5 min read
Share this post:
Like it 8

Leave a Comment

Please, enter your name.
Please, provide a valid email address.
Please, enter your comment.
Enjoy this post? Join Cesko.wiki
Don’t forget to share it
Top