24
18./19.08.2012 6. PHP Unconference in Hamburg 1 von 24 Zend Framework 2 6. PHP Unconference, Hamburg 18. und 19. August 2012 Zend Framework 2 kommt bald - und jetzt?

Zend Framework 2 kommt bald - und jetzt?

Embed Size (px)

DESCRIPTION

Vortrag auf der PHP Unconference 2012 in Hamburg am 18.8.2012

Citation preview

Page 1: Zend Framework 2 kommt bald - und jetzt?

18./19.08.2012 6. PHP Unconference in Hamburg 1 von 24

Zend Framework 2

6. PHP Unconference, Hamburg18. und 19. August 2012

Zend Framework 2 kommt bald - und jetzt?

Page 2: Zend Framework 2 kommt bald - und jetzt?

18./19.08.2012 6. PHP Unconference in Hamburg 2 von 24

Zend Framework 2

Wer sind wir?● Ralf Eggert

[email protected]

● Geschäftsführer Travello GmbH

● PHP seit 1999

● Zend Framework seit 2006

● Autor für PHP Magazin, seit 2007 Zend_Column

● Buchautor, Addison-Wesley, Neuauflage 2013

● www.zendframeworkmagazin.de => sucht Autoren

● Tobias Ranft

[email protected]

● Detlev Louis Motorradvertriebs GmbH

● Webentwickler seit 2000

● Zend Framework seit 2010

● www.louis.de => sucht ZF Freelancer

Page 3: Zend Framework 2 kommt bald - und jetzt?

18./19.08.2012 6. PHP Unconference in Hamburg 3 von 24

Zend Framework 2

TEIL 1

die Neuerungen

Page 4: Zend Framework 2 kommt bald - und jetzt?

18./19.08.2012 6. PHP Unconference in Hamburg 4 von 24

Zend Framework 2

Was interessiert mich mein Geschwätz von gestern?

Page 5: Zend Framework 2 kommt bald - und jetzt?

18./19.08.2012 6. PHP Unconference in Hamburg 5 von 24

Zend Framework 2

Neue Konzepte im ZF2 (I)● PHP Namespaces

– Zend\Form\Element statt Zend_Form_Element

– namespace Zend\Authentication\Adapter;

– use Zend\Authentication\Result as AuthenticationResult;use Zend\Db\Adapter\Adapter as DbAdapter;use Zend\Db\ResultSet\ResultSet;use Zend\Db\Sql\Expression;use Zend\Db\Sql\Select as DbSelect;

– use Zend\InputFilter\Factory as InputFactory;

Page 6: Zend Framework 2 kommt bald - und jetzt?

18./19.08.2012 6. PHP Unconference in Hamburg 6 von 24

Zend Framework 2

Neue Konzepte im ZF2 (II)● Neue Modularität

– Zend\ModuleManager

– Alles ist ein Modul

– Module in /module und /vendor

– Einfache Aktivierung

● Dependency Injection– Zend\Di

– Steuerung der Abhängigkeiten von Objekten

– $b = new MovieLister(new MovieFinder));

– MovieLister ist abhängig von MovieFinder

– MovieFinder wird in MovieLister injiziert

Page 7: Zend Framework 2 kommt bald - und jetzt?

18./19.08.2012 6. PHP Unconference in Hamburg 7 von 24

Zend Framework 2

Neue Konzepte im ZF2 (III)● Service Locator

– Zend\ServiceManager

– Zentrale Registrierung für Objekte zur späteren Wiederverwendung

– Ersetzt Zend_Registry

● Event-Driven Architecture– Zend\EventManager

– Anhängen und Abhängen von Listenern an benannte Events

– Events werden angestoßen

– Plugin Hooks sind als Events realisiert

– Klassische Beispiele: Logging oder Versand von Bestellbestätigungen

Page 8: Zend Framework 2 kommt bald - und jetzt?

18./19.08.2012 6. PHP Unconference in Hamburg 8 von 24

Zend Framework 2

Neue Konzepte im ZF2 (IV)● Neuer Autoloader

– Zend\Loader

– Class Map

– PSR-0 style autoloader

– Plugin Loader

– Prefix Path Loader

● Standardisierte Konfiguration– Einheitliche Optionen: lowercase_underscore_separated_words

– setOptions() für alle Komponenten einheitlich

– Eigene Konfigurationsobjekte pro Komponente

– Zend\Stdlib\AbstractOptions

Page 9: Zend Framework 2 kommt bald - und jetzt?

18./19.08.2012 6. PHP Unconference in Hamburg 9 von 24

Zend Framework 2

Neue Konzepte im ZF2 (V)● Annotations

namespace MyVendor\Model;

use Zend\Form\Annotation;

/** * @Annotation\Hydrator("Zend\Stdlib\Hydrator\ObjectProperty") * @Annotation\Name("user") */class User{ /** * @Annotation\Attributes({"type":"text" }) * @Annotation\Validator({"type":"Regex","options":{"regex":"/^[a-zA-Z][a-zA-Z0-9_-]{1,19}/"}}) * @Annotation\Options({"label":"Username:"}) */ public $username;

/** * @Annotation\Type("Zend\Form\Element\Email") * @Annotation\Options({"label":"Your email address:"}) */ public $email;}

Page 10: Zend Framework 2 kommt bald - und jetzt?

18./19.08.2012 6. PHP Unconference in Hamburg 10 von 24

Zend Framework 2

Alte Komponenten in neuem Gewand (I)● Zend\Authentication

● Zend\Barcode

● Zend\Cache

● Zend\Captcha

● Zend\Console

● Zend\Code

● Zend\Config

● Zend\Db

● Zend\Debug

● Zend\Dom

● Zend\Feed

● Zend\File

● Zend\Filter

● Zend\Form

● Zend\Http

● Zend\InputFilter

● Zend\Json

● Zend\Ldap

● Zend\Loader

● Zend\Log

Page 11: Zend Framework 2 kommt bald - und jetzt?

18./19.08.2012 6. PHP Unconference in Hamburg 11 von 24

Zend Framework 2

Alte Komponenten in neuem Gewand (II)● Zend\Mail

● Zend\Memory

● Zend\Mime

● Zend\Mvc

● Zend\Navigation

● Zend\Pagination

● Zend\Permissions\Acl

● Zend\Progressbar

● Zend\Serializer

● Zend\Server

● Zend\Session

● Zend\Soap

● Zend\Tag

● Zend\Text

● Zend\Uri

● Zend\Validator

● Zend\Version

● Zend\View

● Zend\XmlRpc

Page 12: Zend Framework 2 kommt bald - und jetzt?

18./19.08.2012 6. PHP Unconference in Hamburg 12 von 24

Zend Framework 2

Neue Komponenten mit neuem Glanz● Zend\Crypt

● Zend\Di

● Zend\Escaper

● Zend\EventManager

● Zend\I18n +

● Zend\Math

● Zend\ModuleManager

● Zend\ServiceManager

● Zend\Stdlib

Page 13: Zend Framework 2 kommt bald - und jetzt?

18./19.08.2012 6. PHP Unconference in Hamburg 13 von 24

Zend Framework 2

Der Rest: vergessen, verraten & verkauft● Zend_Amf *

● Zend_Cloud *

● Zend_Currency +

● Zend_Date +

● Zend_Dojo

● Zend_Gdata *

● Zend_InfoCard

● Zend_Locale +

● Zend_Markup *

● Zend_Measure +

● Zend_OAuth *

● Zend_OpenId *

● Zend_Pdf *

● Zend_Queue *

● Zend_Reflection

● Zend_Registry

● Zend_Rest *

● Zend_Search_Lucene *

● Zend_Service *

● Zend_Test

● Zend_TimeSync *

● Zend_Tool *

● Zend_Translate +

● Zend_Wildfire

Page 14: Zend Framework 2 kommt bald - und jetzt?

18./19.08.2012 6. PHP Unconference in Hamburg 14 von 24

Zend Framework 2

Geplante Ziele für das ZF2● Lernkurve vereinfachen / bessere Dokumentation

● Performance verbessern

● Erweiterbarkeit des Frameworks vereinfachen

● Wartung des Frameworks vereinfachen

● Module sollen »first-class-citizens« werden

● Download von einzelnen Teilen / Komponenten

● Entkopplung der Komponenten (Zend_Form, Zend_View)

● Mehr Konsistenzen schaffen (Optionen, Eigenschaften, ...)

● PHP 5.3 voll unterstützen (Namespaces, Closures, ...)

Page 15: Zend Framework 2 kommt bald - und jetzt?

18./19.08.2012 6. PHP Unconference in Hamburg 15 von 24

Zend Framework 2

Vorteile des ZF2● Sehr performantes Autoloading

● Wiederverwendbare Module

● Wachsendes Angebot an fertigen Modulen

● Noch höhere Flexibilität als das ZF1

● Sehr lose Kopplung der Komponenten

● »Wer die ersten Hürden genommen hat, will nicht zurück.«

● Partieller Download ausgewählter Komponenten

Page 16: Zend Framework 2 kommt bald - und jetzt?

18./19.08.2012 6. PHP Unconference in Hamburg 16 von 24

Zend Framework 2

Nachteile des ZF2● Konfigurationslastigkeit kann abschrecken

● Höhere Komplexität, dadurch höherer Bedarf an Doku, Bücher und Tutorials

● Neue Konzepte erfordern neues Denken der Entwickler

● Umgang mit git, phar, pyrus und composer muss gelernt werden

● Grundeinstellungen sind im Framework nicht enthalten (Skeleton)

● Inhärente Probleme eines Eventmanagers vorhanden

Page 17: Zend Framework 2 kommt bald - und jetzt?

18./19.08.2012 6. PHP Unconference in Hamburg 17 von 24

Zend Framework 2

http://modules.zendframework.com/● BjyProfiler

● DoctrineModule

● DojoModule

● TwitterBootstrap

● ZendSkeletonModule

● ZendDeveloperTools

● ZfcTwitterBootstrap

● ZfcUser

● ZeTwig

Page 18: Zend Framework 2 kommt bald - und jetzt?

18./19.08.2012 6. PHP Unconference in Hamburg 18 von 24

Zend Framework 2

Struktur für Applikationen und Module

Quelle: Zend Framework 2 2.0.0rc3 documentation

Page 19: Zend Framework 2 kommt bald - und jetzt?

18./19.08.2012 6. PHP Unconference in Hamburg 19 von 24

Zend Framework 2

Installation● Downloadseite

– http://packages.zendframework.com/

● Installation der Package mit Pyrus– pyrus.phar . channel-discover packages.zendframework.com

– pyrus.phar . install zf2/<zf-package>

● Installation der Library mit Git von GitHub– git clone --recursive https://github.com/zendframework/zf2.git

● Installation Skeleton Application mit Composer– Download Zip https://github.com/zendframework/ZendSkeletonApplication

– Entpacken und in Projektverzeichnis verschieben

– php composer.phar self-update

– php composer.phar install

Page 20: Zend Framework 2 kommt bald - und jetzt?

18./19.08.2012 6. PHP Unconference in Hamburg 20 von 24

Zend Framework 2

Mitmachen beim ZF?● Dokumentation

– http://zf2.readthedocs.org/ Edit this document

[email protected]

– Tutorial

– Übersetzung

● Module

– http://modules.zendframework.com/

● Bugtracker

– http://framework.zend.com/issues/browse/ZF2

Page 21: Zend Framework 2 kommt bald - und jetzt?

18./19.08.2012 6. PHP Unconference in Hamburg 21 von 24

Zend Framework 2

Links und Quellen● http://framework.zend.com/zf2/

● http://zf2.readthedocs.org/

● https://github.com/zendframework

● https://github.com/ZF-Commons

● http://framework.zend.com/wiki/display/ZFDEV2/

● http://packages.zendframework.com/

● http://modules.zendframework.com/

● http://git.zendframework.com/

● http://www.zendframeworkmagazin.de/

Page 22: Zend Framework 2 kommt bald - und jetzt?

18./19.08.2012 6. PHP Unconference in Hamburg 22 von 24

Zend Framework 2

TEIL 2

Ein kleines Beispiel

(wenn noch Zeit ist)

Page 23: Zend Framework 2 kommt bald - und jetzt?

18./19.08.2012 6. PHP Unconference in Hamburg 23 von 24

Zend Framework 2

TEIL 3

Fragen?Meinungen?

Neue Chuck Norris Witze?

Page 24: Zend Framework 2 kommt bald - und jetzt?

18./19.08.2012 6. PHP Unconference in Hamburg 24 von 24

Zend Framework 2

Danke für Eure Aufmerksamkeit!

Ralf Eggert <[email protected]>

Tobias Ranft <[email protected]>