390 likes | 606 Views
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 ;
E N D
Zend\Loader • Classmap • PSR-0 • Resourceloader • Autoloaderfactory • Vyšší výkon oproti ZF1
class Person { public$db; publicfunction__construct($dbConfig){ $this->db=newDbAdapter($dbConfig); } } $person=new Person($dbConfig); $person->...
class Person { public$db; publicfunctionsetDb(DbAdapter$dbAdapter){ $this->db=$dbAdapter; } } $person=new Person(); $person->setDb(newDbAdapter($dbConfig)); $person->...
DependencyInjection Žá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 • Dispatchproces - 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
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 ! • routujese na DI alias ne na Modul/Controller/Action • RouteMatch • interface Dispatchable
Request/Response • sestaveny přesně podle RFC • minitřídyna jednotlivé elementy HTTP (Location, ContentType, etc) • posílají se v rámci MVC eventů • Response agreguje výsledky
EventManager • 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) • viewhelpery - __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í
Martin Hujer @MartinHujer Tomáš Fejfar @tomasfejfar