Post on 04-Aug-2015
transcript
Zend Framework 2
Svět se změnil!
Zapomeňte!
Všechno je jinak!
5.3
ZF 2 beta 1
Coding Standards
Zend\Loader
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\DiNapříč celým frameworkem
např. tahání závislostí do controlleru
Není potřeba new, stačí settery a ono se to automagicky naplní
Zend\Mvc
Zend\Mvc• Dispatch proces - spoléhá na DI• ActionController• RestController• interface Dispatchable
Moduly
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í
Routování• normální / binární strom výkon !• routuje se na DI alias
ne na Modul/Controller/Action• RouteMatch• interface Dispatchable
Request/Response
Request Response
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
Event Manager• přes eventy je řešeno skoro všechno–dispatch, routing, …
• veškeré hooky–dispatch.pre–dispatch.post
Pluginy/Helpery/…
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?
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 Hujer@MartinHujer
Tomáš Fejfar@tomasfejfar