Zend Framework 2
Svět se změnil!
Zapomeňte!
Všechno je jinak!
5.3
ZF 2 beta 1
Coding Standards
Zend\Loader
Classmap PSR-0 Resource loader Autoloader factory Vyšší výkon oproti ZF1
Dependency Injection
class Person { public $db; public function __construct($dbConfig) { $this->db = new DbAdapter($dbConfig); } $person = new Person($dbConfig); $person->...
class Person { public $db; public function setDb(DbAdapter $dbAdapter) { $this->db = $dbAdapter; } $person = new Person(); $person->setDb(new DbAdapter($dbConfig)); $person->...
Dependency Injection Žádné interní závislosti snadnější testování Konec řešení „jak to tam předám?“ (skončí většinou na Zend_Registry) Čistější kód
Zend\Di Napříč celým frameworkem např. tahání závislostí do controlleru Není potřeba new, stačí settery a ono se to automagicky naplní
Zend\Mvc
Dispatch proces - spoléhá na DI ActionController RestController interface Dispatchable
Moduly
„balíčky“ v aplikaci neupravovat ani do nich neukládat soubory - snadný upgrade.phar,.tar mergují konfiguraci s aplikací
Moduly vlastní autoloading bude cli skript na instalaci výrazně jednodušší sdílení modules.zendframework.com
View
Zend\View autoescape jiné předávání proměnných $products místo $this->products bude snazší si vyměnit viewčko
Routování
normální / binární strom výkon ! routuje se na DI alias ne na Modul/Controller/Action RouteMatch interface Dispatchable
Request/Response RequestResponse
Request/Response sestaveny přesně podle RFC minitřídy na jednotlivé elementy HTTP (Location, ContentType, etc) posílají se v rámci MVC eventů Response agreguje výsledky
Event Manager
přes eventy je řešeno skoro všechno – dispatch, routing, … veškeré hooky – dispatch.pre – dispatch.post
Pluginy/Helpery/…
sjednocené – interface Pluggable zjednodušené načítání (z pohledu programové složitosti) trochu složitější na rozjetí pro vývojáře (explicitně se registrují helpery) view helpery - __invoke() - is_callable()
Jak začít?
PHP 5.3 DI Tutorial: Getting started with Zend Framework 2 (beta1) (by Akrabat) Applications skeleton + module
Výhody +máte přehled co se děje +změny nejsou tak velké – komponenty přibývají postupně +můžete nově věci zkusit používat ještě než vyjdou +můžete zasáhnout do vývoje
Nevýhody -cokoli, co uděláte, se může rozbít -musíte koukat do zdrojáku -není to na produkční nasazení
Ideální čas na přestup!
Nenechte si ujet vlak!
Děkujeme za pozornost!
Martin Tomáš