Nette Framework
Z Multimediaexpo.cz
Nette Framework je výkonný framework pro tvorbu webových aplikací v PHP 5. 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. Původním autorem Nette Frameworku je David Grudl, o jeho další rozvoj se stará organizace Nette Foundation.[1] Nette Framework je svobodný software, nabízený pod licencemi GNU GPL a licencí Nette,[2] která je obdobou původní (staré, čtyřbodové) BSD licence.
K Nette Frameworku pořádá autor školení.[3] Každý měsíc se také koná neformální setkání příznivců Nette Frameworku, nazývané Poslední sobota; pořádané v Praze, Brně i na jiných místech. Vstup na akci je zdarma.[4]
Obsah |
Požadavky
Nette Framework vyžaduje minimálně verzi PHP 5.2.0.
Kdo je David Grudl
David Grudl se vývojem a navrhováním webových aplikací věnuje soustavně již od konce 90. let minulého století. Je zároveň autorem školení Nette Framework a dalších populárních open-source knihoven, například Texy nebo dibi. Od roku 2004 píše blog s názvem La Trine a odborně zaměřený phpFashion.
Vlastnosti Nette Framework
- Bezpečnost
- Ladící nástroje
- Komponenty a znovupoužitelnost kódu
- Aktivní komunita uživatelů v ČR
- Podpora jmenných prostorů v PHP 5.3
Verze frameworku
Existují 3 základní varianty, ve kterých lze Nette framework stáhnout.
- pro PHP 5.3 se jmennými prostory
- pro PHP 5.2 s prefixy tříd (místo třídy Object používá NObject a další)
- pro PHP 5.2
Autoloading
NetteLoader
Stačí načíst jediný soubor
<?php require_once 'Nette/loader.php';
RobotLoader
- Využívá cache, je třeba nastavit její cestu
- Inteligentní invalidace 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 nám dává 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. Umožňuje tak efektivní debug aplikace. Stačí využít NetteLoader a zapnout debug mód.
<?php require 'libs/Nette/loader.php'; Debug::enable();
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ě. 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é.
<?php $pole = array(1,2,3,5); Debug::consoleDump($pole);
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. 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ěno o vzniku chyby. Zahlcení Vaší E-mailové schránky se nemusíte bát, Nette zašle upozornění na výskyt chyby pouze jednou. Pro obnovu zasílání E-mailů je nutné vymazat textový soubor, který říká, že oznámené již bylo odesláno.
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ídnou veškeré informace pro programátora o rychlosti běhu aplikace, o routování a pohodlný výpis vzniklých chyb. 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živatel.
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. 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
- Ušetření proti útokům: XSS, Cross-Site Request Forgery,UTF-8 attack
$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;
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é aplikace. Umožňuje to obousměrné zpracování routů, routa slouží jak k parsování tak generování cest. 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. Příklady klasických URL:
- example.com?modul=article&action=show&id=10
- example.com?modul=article&action=delete&id=10
URL při použití routy v Nette:
- example.com/article/show/10
- example.com/article/delete/10
Reference
- ↑ Nette Foundation
- ↑ Licenční politika na oficiálních stránkách Nette
- ↑ Jakub Vrána: Ohlas na školení Nette, blog PHP triky
- ↑ Poslední sobota v měsíci pro příznivce Nette Frameworku, zprávička na zdrojak.root.cz, 26. 2. 2009
Externí odkazy
- Oficiální stránky frameworku
- Články o frameworku
- Zdrojak.cz: Seriál Začínáme s Nette Frameworkem
- Root.cz: Velký test PHP frameworků: Zend, Nette, PHP a RoR
- Czech PHP User Group: Přednáška o frameworku Nette – David Grudl
- PHP triky: Unikátní vlastnosti Nette
- Přednášky on-line
- PHP konferenci v Pardubicích 12. 4. 2008: Úvod do praktického programování v Nette
- Oficiální seznam videí o Nette Framework
Náklady na energie a provoz naší encyklopedie prudce vzrostly. Potřebujeme vaši podporu... Kolik ?? To je na Vás. Náš FIO účet — 2500575897 / 2010 |
---|
Informace o článku.
Článek je převzat z Wikipedie, otevřené encyklopedie, do které přispívají dobrovolníci z celého světa. |