zend framework 2

39
Zend Framework 2

Upload: pilis

Post on 18-Feb-2016

71 views

Category:

Documents


2 download

DESCRIPTION

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 ; - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: Zend  Framework 2

Zend Framework 2

Page 2: Zend  Framework 2

Svět se změnil!

Page 3: Zend  Framework 2

Zapomeňte!

Page 4: Zend  Framework 2

Všechno je jinak!

Page 5: Zend  Framework 2

5.3

Page 6: Zend  Framework 2
Page 7: Zend  Framework 2
Page 8: Zend  Framework 2

ZF 2 beta 1

Page 9: Zend  Framework 2

Coding Standards

Page 10: Zend  Framework 2

Zend\Loader

Page 11: Zend  Framework 2

Zend\Loader• Classmap• PSR-0• Resource loader• Autoloader factory • Vyšší výkon oproti ZF1

Page 12: Zend  Framework 2

Dependency Injection

Page 13: Zend  Framework 2

class Person { public $db; public function __construct($dbConfig) { $this->db = new DbAdapter($dbConfig); }}

$person = new Person($dbConfig);$person->... 

Page 14: Zend  Framework 2

class Person { public $db; public function setDb(DbAdapter $dbAdapter) { $this->db = $dbAdapter; }}

$person = new Person();$person->setDb(new DbAdapter($dbConfig));$person->...

Page 15: Zend  Framework 2

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

Page 16: Zend  Framework 2

Zend\DiNapříč celým frameworkem

např. tahání závislostí do controlleru

Není potřeba new, stačí settery a ono se to automagicky naplní

Page 17: Zend  Framework 2

Zend\Mvc

Page 18: Zend  Framework 2

Zend\Mvc• Dispatch proces - spoléhá na DI• ActionController• RestController• interface Dispatchable

Page 19: Zend  Framework 2

Moduly

Page 20: Zend  Framework 2

Moduly• „balíčky“• v aplikaci neupravovat ani do nich

neukládat soubory - snadný upgrade• .phar, .tar• mergují konfiguraci s aplikací

Page 21: Zend  Framework 2

Moduly• vlastní autoloading• bude cli skript na instalaci• výrazně jednodušší sdílení

modules.zendframework.com

Page 22: Zend  Framework 2

View

Page 23: Zend  Framework 2

Zend\View• autoescape• jiné předávání proměnných• $products místo $this->products• bude snazší si vyměnit viewčko

Page 24: Zend  Framework 2

Routování

Page 25: Zend  Framework 2

Routování• normální / binární strom výkon !• routuje se na DI alias

ne na Modul/Controller/Action• RouteMatch• interface Dispatchable

Page 26: Zend  Framework 2

Request/Response

Request Response

Page 27: Zend  Framework 2

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

Page 28: Zend  Framework 2

Event Manager

Page 29: Zend  Framework 2

Event Manager• přes eventy je řešeno skoro všechno–dispatch, routing, …

• veškeré hooky–dispatch.pre–dispatch.post

Page 30: Zend  Framework 2

Pluginy/Helpery/…

Page 31: Zend  Framework 2

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()

Page 32: Zend  Framework 2

Jak začít?

Page 33: Zend  Framework 2

Jak začít?• PHP 5.3• DI• Tutorial: Getting started with Zend

Framework 2 (beta1) (by Akrabat)• Applications skeleton + module

Page 34: Zend  Framework 2

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

Page 35: Zend  Framework 2

Nevýhody- cokoli, co uděláte, se může rozbít- musíte koukat do zdrojáku- není to na produkční nasazení

Page 36: Zend  Framework 2

Ideální čas na přestup!

Page 37: Zend  Framework 2

Nenechte si ujet vlak!

Page 38: Zend  Framework 2

Děkujeme za pozornost!

Page 39: Zend  Framework 2

Martin Hujer@MartinHujer

Tomáš Fejfar@tomasfejfar