Snadný vývoj webových aplikací s Nette Lukáš Jelínek
Snadný vývoj webových aplikací s Nette • Common 2016 Mikulov
Proč framework?
•ušetří spoustu práce (implementace, úpravy) •vývoj = co udělat, ne jak to udělat •bezpečnost •štábní kultura •prostředky pro ladění •podpora v IDE
Lukáš Jelínek • AIKEN s.r.o. • www.aiken.cz
Snadný vývoj webových aplikací s Nette • Common 2016 Mikulov
Proč Nette?
•lehký („nenabobtnalý“) framework pro PHP •kvalitní návrh, koncept MVP •vysoká bezpečnost •vysoký výkon •modularita, pluginy •ladicí nástroje •licence BSD •české dílo, aktivní česká komunita
Lukáš Jelínek • AIKEN s.r.o. • www.aiken.cz
Snadný vývoj webových aplikací s Nette • Common 2016 Mikulov
Nevýhody Nette
•menší rozšíření mimo ČR •pro 2.4 minimálně PHP 5.6 •vyžaduje některá rozšíření PHP (iconv, PCRE, reflection…) •relativně úzká škála funkcí •Symphony, Laravel, CodeIgniter, CakePHP, Yii 2, Slim, Zend Framework, FuelPHP…
Lukáš Jelínek • AIKEN s.r.o. • www.aiken.cz
Snadný vývoj webových aplikací s Nette • Common 2016 Mikulov
Autoloading
•zapomeňte na require/require_once •snadná změna struktury souborů •analýza závislostí se provádí jen při změně (ale lze vynutit vždy) •pozor na duplicity názvů – používejte namespaces !
Lukáš Jelínek • AIKEN s.r.o. • www.aiken.cz
Snadný vývoj webových aplikací s Nette • Common 2016 Mikulov
Koncept MVC/MVP
•MVC = Model – View – Controller •MVP = Model – View – Presenter •Model = práce s daty, aplikační logika •View = šablony Latte •Presenter = prezentace dat uživateli, obsluha akcí
Lukáš Jelínek • AIKEN s.r.o. • www.aiken.cz
Snadný vývoj webových aplikací s Nette • Common 2016 Mikulov
Šablony, formát Latte
•Latte = kód PHP, bloky, makra, filtry •dědičnost •lze míchat s HTML, JS, CSS, XML… •blok = ucelený kus šablony, lze předefinovávat •makro = činnosti a řízení „běhu“ šablon •filtr (helper) = zpracování prezentovaných dat
Lukáš Jelínek • AIKEN s.r.o. • www.aiken.cz
Snadný vývoj webových aplikací s Nette • Common 2016 Mikulov
Prezentery
•zpracování akce •přesměrování, změna view •zpracování signálu •vykreslování •komponenty – opakovaně použitelné části •flash zprávy – přežijí i přesměrování
Lukáš Jelínek • AIKEN s.r.o. • www.aiken.cz
Snadný vývoj webových aplikací s Nette • Common 2016 Mikulov
Konfigurace
•konfigurační soubory – formát NEON (služby) •společná konfigurace, vývoj, produkce… •databáze, formuláře, ladění, vlastní služby… •autowiring •cachování konfigurace •vývojářský režim
Lukáš Jelínek • AIKEN s.r.o. • www.aiken.cz
Snadný vývoj webových aplikací s Nette • Common 2016 Mikulov
Dependency injection (DI)
•eliminace globálních proměnných, autowiring •DI kontejnery (statické, dynamické) •předávání závislostí –konstruktor
–setter / proměnná –metoda inject*() –anotace @inject
Lukáš Jelínek • AIKEN s.r.o. • www.aiken.cz
Snadný vývoj webových aplikací s Nette • Common 2016 Mikulov
Databáze
•rozhraní nad PDO •podpora řady databází (MySQL, PostgreSQL, ODBC...) •parametry připojení : konfigurační soubory •surové SQL : lze (bezpečně), ale lepší se mu vyhýbat •fluent interface, lazy chování •automatická optimalizace
Lukáš Jelínek • AIKEN s.r.o. • www.aiken.cz
Snadný vývoj webových aplikací s Nette • Common 2016 Mikulov
Formuláře a validace
•automatické generování, možnost používat šablony, manuální vykreslování •snadné zpracování dat •validace – jedno pravidlo pro server i klient •předpřipravená i vlastní pravidla •ochrana proti XSS a CSRF •snadný překlad textů
Lukáš Jelínek • AIKEN s.r.o. • www.aiken.cz
Snadný vývoj webových aplikací s Nette • Common 2016 Mikulov
Překlady do jiných jazyků
•připraveno rozhraní pro překlady •automatický překlad šablon a textů ve formulářích •podpora pro texty u čísel •Nette nemá výchozí implementaci •lze použít implementace třetích osob nebo vlastní
Lukáš Jelínek • AIKEN s.r.o. • www.aiken.cz
Snadný vývoj webových aplikací s Nette • Common 2016 Mikulov
AJAX
•velmi snadná „ajaxizace“ aplikací •koncepce snippetů – server posílá jen zneplatněné kusy kódu •konzistentní chování s AJAXem i bez něj
Lukáš Jelínek • AIKEN s.r.o. • www.aiken.cz
Snadný vývoj webových aplikací s Nette • Common 2016 Mikulov
Routování URL
•široké možnosti tvorby „hezkých URL“ •validace parametrů •jednosměrky •překlady •filtry pro URL
Lukáš Jelínek • AIKEN s.r.o. • www.aiken.cz
Snadný vývoj webových aplikací s Nette • Common 2016 Mikulov
Ladění
•ladicí nástroj Tracy (dříve Laděnka) •vizualizace chyb – přehledné zobrazení •logování, posílání e-mailem •výpis dat, měření času •ladicí panel nástrojů •FireLogger – napojení na Firebug
Lukáš Jelínek • AIKEN s.r.o. • www.aiken.cz
Snadný vývoj webových aplikací s Nette • Common 2016 Mikulov
Další funkce Nette
•autentizace a autorizace, role, práce s hesly •vylepšení tříd PHP – kontrola, properties (get/set), události, reflexe, anotace •posílání e-mailů – přílohy, šablony •sessions – sekce, konfigurace •cache – podpora v šablonách, tagy, priority •obrázky – načítání, ukládání, změna velikosti •SafeStream – atomické souborové operace
Lukáš Jelínek • AIKEN s.r.o. • www.aiken.cz
Snadný vývoj webových aplikací s Nette • Common 2016 Mikulov
Odkazy
•https://nette.org – web projektu Nette •https://ne-on.org – NEON sandbox •https://www.zdrojak.cz/serialy/zaciname-s-netteframework/ – od hlavního tvůrce Davida Grudla, staré ! •https://www.posobota.cz – Poslední sobota (setkání) •https://phpfashion.com – blog Davida Grudla
Lukáš Jelínek • AIKEN s.r.o. • www.aiken.cz
Snadný vývoj webových aplikací s Nette • Common 2016 Mikulov
Děkuji za pozornost.
Dotazy? Lukáš Jelínek • AIKEN s.r.o. • www.aiken.cz