Zend Framework 2.0 (ZFMeetup Praha 3.11.2011)

Post on 04-Aug-2015

5,899 views 6 download

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