SlideShare ist ein Scribd-Unternehmen logo
1 von 24
Downloaden Sie, um offline zu lesen
Zend Framework 2




                   6. PHP Unconference, Hamburg
                       18. und 19. August 2012




                   Zend Framework 2
                 kommt bald - und jetzt?




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



                            Wer sind wir?
 ●   Ralf Eggert                               ●    Tobias Ranft
 ●   ralf@travello.com                         ●    tobias@ranft.biz
 ●   Geschäftsführer Travello GmbH             ●    Detlev Louis Motorradvertriebs
                                                    GmbH
 ●   PHP seit 1999
                                               ●    Webentwickler seit 2000
 ●   Zend Framework seit 2006
                                               ●    Zend Framework seit 2010
 ●   Autor für PHP Magazin, seit 2007
     Zend_Column                               ●    www.louis.de
                                                    => sucht ZF Freelancer
 ●   Buchautor, Addison-Wesley,
     Neuauflage 2013
 ●   www.zendframeworkmagazin.de
     => sucht Autoren



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




                         TEIL 1

                 die Neuerungen




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



     Was interessiert mich mein Geschwätz von gestern?




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



                       Neue Konzepte im ZF2 (I)
 ●   PHP Namespaces
           –     ZendFormElement statt Zend_Form_Element
           –     namespace ZendAuthenticationAdapter;
           –     use ZendAuthenticationResult as AuthenticationResult;
                 use ZendDbAdapterAdapter as DbAdapter;
                 use ZendDbResultSetResultSet;
                 use ZendDbSqlExpression;
                 use ZendDbSqlSelect as DbSelect;
           –     use ZendInputFilterFactory as InputFactory;




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



                       Neue Konzepte im ZF2 (II)
●    Neue Modularität
           –     ZendModuleManager
           –     Alles ist ein Modul
           –     Module in /module und /vendor
           –     Einfache Aktivierung
●    Dependency Injection
           –     ZendDi
           –     Steuerung der Abhängigkeiten von Objekten
           –     $b = new MovieLister(new MovieFinder));
           –     MovieLister ist abhängig von MovieFinder
           –     MovieFinder wird in MovieLister injiziert

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



                      Neue Konzepte im ZF2 (III)
 ●   Service Locator
           –     ZendServiceManager
           –     Zentrale Registrierung für Objekte zur späteren Wiederverwendung
           –     Ersetzt Zend_Registry
 ●   Event-Driven Architecture
           –     ZendEventManager
           –     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



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



                      Neue Konzepte im ZF2 (IV)
 ●   Neuer Autoloader
           –     ZendLoader
           –     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
           –     ZendStdlibAbstractOptions

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



                      Neue Konzepte im ZF2 (V)
 ●   Annotations
     namespace MyVendorModel;

     use ZendFormAnnotation;

     /**
       * @AnnotationHydrator("ZendStdlibHydratorObjectProperty")
       * @AnnotationName("user")
       */
     class User
     {
          /**
           * @AnnotationAttributes({"type":"text" })
           * @AnnotationValidator({"type":"Regex","options":{"regex":"/^[a-zA-Z][a-zA-Z0-9_-]{1,19}/"}})
           * @AnnotationOptions({"label":"Username:"})
           */
          public $username;

          /**
           * @AnnotationType("ZendFormElementEmail")
           * @AnnotationOptions({"label":"Your email address:"})
           */
          public $email;
     }




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



      Alte Komponenten in neuem Gewand (I)
 ●   ZendAuthentication                    ●    ZendFeed
 ●   ZendBarcode                           ●    ZendFile
 ●   ZendCache                             ●    ZendFilter
 ●   ZendCaptcha                           ●    ZendForm
 ●   ZendConsole                           ●    ZendHttp
 ●   ZendCode                              ●    ZendInputFilter
 ●   ZendConfig                            ●    ZendJson
 ●   ZendDb                                ●    ZendLdap
 ●   ZendDebug                             ●    ZendLoader
 ●   ZendDom                               ●    ZendLog

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



     Alte Komponenten in neuem Gewand (II)
 ●   ZendMail                               ●    ZendSession
 ●   ZendMemory                             ●    ZendSoap
 ●   ZendMime                               ●    ZendTag
 ●   ZendMvc                                ●    ZendText
 ●   ZendNavigation                         ●    ZendUri
 ●   ZendPagination                         ●    ZendValidator
 ●   ZendPermissionsAcl                    ●    ZendVersion
 ●   ZendProgressbar                        ●    ZendView
 ●   ZendSerializer                         ●    ZendXmlRpc
 ●   ZendServer

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



         Neue Komponenten mit neuem Glanz
 ●   ZendCrypt
 ●   ZendDi
 ●   ZendEscaper
 ●   ZendEventManager
 ●   ZendI18n +
 ●   ZendMath
 ●   ZendModuleManager
 ●   ZendServiceManager
 ●   ZendStdlib

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



     Der Rest: vergessen, verraten & verkauft
 ●   Zend_Amf *                         ●    Zend_Pdf *
 ●   Zend_Cloud *                       ●    Zend_Queue *
 ●   Zend_Currency +                    ●    Zend_Reflection
 ●   Zend_Date +                        ●    Zend_Registry
 ●   Zend_Dojo                          ●    Zend_Rest *
 ●   Zend_Gdata *                       ●    Zend_Search_Lucene *
 ●   Zend_InfoCard                      ●    Zend_Service *
 ●   Zend_Locale +                      ●    Zend_Test
 ●   Zend_Markup *                      ●    Zend_TimeSync *
 ●   Zend_Measure +                     ●    Zend_Tool *
 ●   Zend_OAuth *                       ●    Zend_Translate +
 ●   Zend_OpenId *                      ●    Zend_Wildfire


18./19.08.2012         6. PHP Unconference in Hamburg               13 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, ...)

18./19.08.2012           6. PHP Unconference in Hamburg      14 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




18./19.08.2012           6. PHP Unconference in Hamburg   15 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


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



             http://modules.zendframework.com/
 ●   BjyProfiler
 ●   DoctrineModule
 ●   DojoModule
 ●   TwitterBootstrap
 ●   ZendSkeletonModule
 ●   ZendDeveloperTools
 ●   ZfcTwitterBootstrap
 ●   ZfcUser
 ●   ZeTwig

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



         Struktur für Applikationen und Module




 Quelle: Zend Framework 2 2.0.0rc3 documentation




18./19.08.2012                               6. PHP Unconference in Hamburg   18 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
18./19.08.2012                            6. PHP Unconference in Hamburg                 19 von 24
Zend Framework 2



                            Mitmachen beim ZF?
 ●   Dokumentation
           –     http://zf2.readthedocs.org/ Edit this document
           –     fw-docs@lists.zend.com
           –     Tutorial
           –     Übersetzung
 ●   Module
           –     http://modules.zendframework.com/
 ●   Bugtracker
           –     http://framework.zend.com/issues/browse/ZF2


18./19.08.2012                   6. PHP Unconference in Hamburg   20 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/

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




                           TEIL 2

                 Ein kleines Beispiel
                         (wenn noch Zeit ist)




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




                             TEIL 3

                        Fragen?
                       Meinungen?
                 Neue Chuck Norris Witze?



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




                 Danke für Eure Aufmerksamkeit!

                      Ralf Eggert <r.eggert@travello.com>

                        Tobias Ranft <tobias@ranft.biz>




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

Weitere ähnliche Inhalte

Ähnlich wie Zend Framework 2 kommt bald - und jetzt?

Middleware Anwendungen mit dem Zend Framework 3
Middleware Anwendungen mit dem Zend Framework 3Middleware Anwendungen mit dem Zend Framework 3
Middleware Anwendungen mit dem Zend Framework 3Ralf Eggert
 
Zend Framework
Zend FrameworkZend Framework
Zend Frameworkluckec
 
Übersetze mich
Übersetze michÜbersetze mich
Übersetze michDominik
 
Nagios Conference 2007 | Pluginprogrammierung in Perl by Wolfgang Barth
Nagios Conference 2007 |  Pluginprogrammierung in Perl by Wolfgang BarthNagios Conference 2007 |  Pluginprogrammierung in Perl by Wolfgang Barth
Nagios Conference 2007 | Pluginprogrammierung in Perl by Wolfgang BarthNETWAYS
 
TechDays 2016 - Der DevOps Kreislauf – Moderne Source Code Verwaltung und Pac...
TechDays 2016 - Der DevOps Kreislauf – Moderne Source Code Verwaltung und Pac...TechDays 2016 - Der DevOps Kreislauf – Moderne Source Code Verwaltung und Pac...
TechDays 2016 - Der DevOps Kreislauf – Moderne Source Code Verwaltung und Pac...Marc Müller
 
Qualitätssicherung in ADF Projekten der IKB Deutschen Industriebank AG
Qualitätssicherung in ADF Projekten der IKB Deutschen Industriebank AGQualitätssicherung in ADF Projekten der IKB Deutschen Industriebank AG
Qualitätssicherung in ADF Projekten der IKB Deutschen Industriebank AGTorsten Kleiber
 
Maemo 5 Developer Workshop @ Metalab
Maemo 5 Developer Workshop @ MetalabMaemo 5 Developer Workshop @ Metalab
Maemo 5 Developer Workshop @ Metalabthp4
 

Ähnlich wie Zend Framework 2 kommt bald - und jetzt? (9)

Middleware Anwendungen mit dem Zend Framework 3
Middleware Anwendungen mit dem Zend Framework 3Middleware Anwendungen mit dem Zend Framework 3
Middleware Anwendungen mit dem Zend Framework 3
 
Zend Framework
Zend FrameworkZend Framework
Zend Framework
 
Übersetze mich
Übersetze michÜbersetze mich
Übersetze mich
 
Nagios Conference 2007 | Pluginprogrammierung in Perl by Wolfgang Barth
Nagios Conference 2007 |  Pluginprogrammierung in Perl by Wolfgang BarthNagios Conference 2007 |  Pluginprogrammierung in Perl by Wolfgang Barth
Nagios Conference 2007 | Pluginprogrammierung in Perl by Wolfgang Barth
 
Einblicke in Zend Server Cluster Manager
Einblicke in Zend Server Cluster ManagerEinblicke in Zend Server Cluster Manager
Einblicke in Zend Server Cluster Manager
 
PHP auf IBM Plattformen
PHP auf IBM PlattformenPHP auf IBM Plattformen
PHP auf IBM Plattformen
 
TechDays 2016 - Der DevOps Kreislauf – Moderne Source Code Verwaltung und Pac...
TechDays 2016 - Der DevOps Kreislauf – Moderne Source Code Verwaltung und Pac...TechDays 2016 - Der DevOps Kreislauf – Moderne Source Code Verwaltung und Pac...
TechDays 2016 - Der DevOps Kreislauf – Moderne Source Code Verwaltung und Pac...
 
Qualitätssicherung in ADF Projekten der IKB Deutschen Industriebank AG
Qualitätssicherung in ADF Projekten der IKB Deutschen Industriebank AGQualitätssicherung in ADF Projekten der IKB Deutschen Industriebank AG
Qualitätssicherung in ADF Projekten der IKB Deutschen Industriebank AG
 
Maemo 5 Developer Workshop @ Metalab
Maemo 5 Developer Workshop @ MetalabMaemo 5 Developer Workshop @ Metalab
Maemo 5 Developer Workshop @ Metalab
 

Mehr von Ralf Eggert

ChatGPT: unser täglich' Bot gib uns heute
ChatGPT: unser täglich' Bot gib uns heuteChatGPT: unser täglich' Bot gib uns heute
ChatGPT: unser täglich' Bot gib uns heuteRalf Eggert
 
Der ultimative PHP Framework Vergleich 2023 Edition
Der ultimative PHP Framework Vergleich 2023 EditionDer ultimative PHP Framework Vergleich 2023 Edition
Der ultimative PHP Framework Vergleich 2023 EditionRalf Eggert
 
PHP Module als Rundum-Sorglos-Pakete entwickeln
PHP Module als Rundum-Sorglos-Pakete entwickelnPHP Module als Rundum-Sorglos-Pakete entwickeln
PHP Module als Rundum-Sorglos-Pakete entwickelnRalf Eggert
 
Alexa, what's next?
Alexa, what's next?Alexa, what's next?
Alexa, what's next?Ralf Eggert
 
Alexa, wohin geht die Reise
Alexa, wohin geht die ReiseAlexa, wohin geht die Reise
Alexa, wohin geht die ReiseRalf Eggert
 
8. Hamburg Voice Interface Meetup
8. Hamburg Voice Interface Meetup8. Hamburg Voice Interface Meetup
8. Hamburg Voice Interface MeetupRalf Eggert
 
Alexa Skill Maintenance
Alexa Skill MaintenanceAlexa Skill Maintenance
Alexa Skill MaintenanceRalf Eggert
 
Vom Zend Framework zu Laminas
Vom Zend Framework zu LaminasVom Zend Framework zu Laminas
Vom Zend Framework zu LaminasRalf Eggert
 
Alexa Skills und PHP? Passt das zusammen?
Alexa Skills und PHP? Passt das zusammen?Alexa Skills und PHP? Passt das zusammen?
Alexa Skills und PHP? Passt das zusammen?Ralf Eggert
 
Mit Jovo von 0 auf 100
Mit Jovo von 0 auf 100Mit Jovo von 0 auf 100
Mit Jovo von 0 auf 100Ralf Eggert
 
Vom Zend Framework zu Laminas
Vom Zend Framework zu LaminasVom Zend Framework zu Laminas
Vom Zend Framework zu LaminasRalf Eggert
 
Alexa for Hospitality
Alexa for HospitalityAlexa for Hospitality
Alexa for HospitalityRalf Eggert
 
Alexa, lass uns Geld verdienen – fünf Geschäftsmodelle, die wirklich funktion...
Alexa, lass uns Geld verdienen – fünf Geschäftsmodelle, die wirklich funktion...Alexa, lass uns Geld verdienen – fünf Geschäftsmodelle, die wirklich funktion...
Alexa, lass uns Geld verdienen – fünf Geschäftsmodelle, die wirklich funktion...Ralf Eggert
 
Fortgeschrittene Techniken für erfolgreiche Sprachanwendungen
Fortgeschrittene Techniken für erfolgreiche SprachanwendungenFortgeschrittene Techniken für erfolgreiche Sprachanwendungen
Fortgeschrittene Techniken für erfolgreiche SprachanwendungenRalf Eggert
 
Die sieben Projektphasen für Voice Projekte
Die sieben Projektphasen für Voice ProjekteDie sieben Projektphasen für Voice Projekte
Die sieben Projektphasen für Voice ProjekteRalf Eggert
 
Künstliche Intelligenz – Traum und Wirklichkeit
Künstliche Intelligenz – Traum und WirklichkeitKünstliche Intelligenz – Traum und Wirklichkeit
Künstliche Intelligenz – Traum und WirklichkeitRalf Eggert
 
Multi-Modal Voice Development with Amazon Alexa
Multi-Modal Voice Development with Amazon AlexaMulti-Modal Voice Development with Amazon Alexa
Multi-Modal Voice Development with Amazon AlexaRalf Eggert
 
Mein Haus, mein Auto, mein Backend
Mein Haus, mein Auto, mein BackendMein Haus, mein Auto, mein Backend
Mein Haus, mein Auto, mein BackendRalf Eggert
 
Zend/Expressive 3 – The Next Generation
Zend/Expressive 3 – The Next GenerationZend/Expressive 3 – The Next Generation
Zend/Expressive 3 – The Next GenerationRalf Eggert
 

Mehr von Ralf Eggert (20)

ChatGPT: unser täglich' Bot gib uns heute
ChatGPT: unser täglich' Bot gib uns heuteChatGPT: unser täglich' Bot gib uns heute
ChatGPT: unser täglich' Bot gib uns heute
 
Der ultimative PHP Framework Vergleich 2023 Edition
Der ultimative PHP Framework Vergleich 2023 EditionDer ultimative PHP Framework Vergleich 2023 Edition
Der ultimative PHP Framework Vergleich 2023 Edition
 
PHP Module als Rundum-Sorglos-Pakete entwickeln
PHP Module als Rundum-Sorglos-Pakete entwickelnPHP Module als Rundum-Sorglos-Pakete entwickeln
PHP Module als Rundum-Sorglos-Pakete entwickeln
 
Alexa, what's next?
Alexa, what's next?Alexa, what's next?
Alexa, what's next?
 
Alexa, wohin geht die Reise
Alexa, wohin geht die ReiseAlexa, wohin geht die Reise
Alexa, wohin geht die Reise
 
8. Hamburg Voice Interface Meetup
8. Hamburg Voice Interface Meetup8. Hamburg Voice Interface Meetup
8. Hamburg Voice Interface Meetup
 
Welcome Bixby
Welcome BixbyWelcome Bixby
Welcome Bixby
 
Alexa Skill Maintenance
Alexa Skill MaintenanceAlexa Skill Maintenance
Alexa Skill Maintenance
 
Vom Zend Framework zu Laminas
Vom Zend Framework zu LaminasVom Zend Framework zu Laminas
Vom Zend Framework zu Laminas
 
Alexa Skills und PHP? Passt das zusammen?
Alexa Skills und PHP? Passt das zusammen?Alexa Skills und PHP? Passt das zusammen?
Alexa Skills und PHP? Passt das zusammen?
 
Mit Jovo von 0 auf 100
Mit Jovo von 0 auf 100Mit Jovo von 0 auf 100
Mit Jovo von 0 auf 100
 
Vom Zend Framework zu Laminas
Vom Zend Framework zu LaminasVom Zend Framework zu Laminas
Vom Zend Framework zu Laminas
 
Alexa for Hospitality
Alexa for HospitalityAlexa for Hospitality
Alexa for Hospitality
 
Alexa, lass uns Geld verdienen – fünf Geschäftsmodelle, die wirklich funktion...
Alexa, lass uns Geld verdienen – fünf Geschäftsmodelle, die wirklich funktion...Alexa, lass uns Geld verdienen – fünf Geschäftsmodelle, die wirklich funktion...
Alexa, lass uns Geld verdienen – fünf Geschäftsmodelle, die wirklich funktion...
 
Fortgeschrittene Techniken für erfolgreiche Sprachanwendungen
Fortgeschrittene Techniken für erfolgreiche SprachanwendungenFortgeschrittene Techniken für erfolgreiche Sprachanwendungen
Fortgeschrittene Techniken für erfolgreiche Sprachanwendungen
 
Die sieben Projektphasen für Voice Projekte
Die sieben Projektphasen für Voice ProjekteDie sieben Projektphasen für Voice Projekte
Die sieben Projektphasen für Voice Projekte
 
Künstliche Intelligenz – Traum und Wirklichkeit
Künstliche Intelligenz – Traum und WirklichkeitKünstliche Intelligenz – Traum und Wirklichkeit
Künstliche Intelligenz – Traum und Wirklichkeit
 
Multi-Modal Voice Development with Amazon Alexa
Multi-Modal Voice Development with Amazon AlexaMulti-Modal Voice Development with Amazon Alexa
Multi-Modal Voice Development with Amazon Alexa
 
Mein Haus, mein Auto, mein Backend
Mein Haus, mein Auto, mein BackendMein Haus, mein Auto, mein Backend
Mein Haus, mein Auto, mein Backend
 
Zend/Expressive 3 – The Next Generation
Zend/Expressive 3 – The Next GenerationZend/Expressive 3 – The Next Generation
Zend/Expressive 3 – The Next Generation
 

Zend Framework 2 kommt bald - und jetzt?

  • 1. Zend Framework 2 6. PHP Unconference, Hamburg 18. und 19. August 2012 Zend Framework 2 kommt bald - und jetzt? 18./19.08.2012 6. PHP Unconference in Hamburg 1 von 24
  • 2. Zend Framework 2 Wer sind wir? ● Ralf Eggert ● Tobias Ranft ● ralf@travello.com ● tobias@ranft.biz ● Geschäftsführer Travello GmbH ● Detlev Louis Motorradvertriebs GmbH ● PHP seit 1999 ● Webentwickler seit 2000 ● Zend Framework seit 2006 ● Zend Framework seit 2010 ● Autor für PHP Magazin, seit 2007 Zend_Column ● www.louis.de => sucht ZF Freelancer ● Buchautor, Addison-Wesley, Neuauflage 2013 ● www.zendframeworkmagazin.de => sucht Autoren 18./19.08.2012 6. PHP Unconference in Hamburg 2 von 24
  • 3. Zend Framework 2 TEIL 1 die Neuerungen 18./19.08.2012 6. PHP Unconference in Hamburg 3 von 24
  • 4. Zend Framework 2 Was interessiert mich mein Geschwätz von gestern? 18./19.08.2012 6. PHP Unconference in Hamburg 4 von 24
  • 5. Zend Framework 2 Neue Konzepte im ZF2 (I) ● PHP Namespaces – ZendFormElement statt Zend_Form_Element – namespace ZendAuthenticationAdapter; – use ZendAuthenticationResult as AuthenticationResult; use ZendDbAdapterAdapter as DbAdapter; use ZendDbResultSetResultSet; use ZendDbSqlExpression; use ZendDbSqlSelect as DbSelect; – use ZendInputFilterFactory as InputFactory; 18./19.08.2012 6. PHP Unconference in Hamburg 5 von 24
  • 6. Zend Framework 2 Neue Konzepte im ZF2 (II) ● Neue Modularität – ZendModuleManager – Alles ist ein Modul – Module in /module und /vendor – Einfache Aktivierung ● Dependency Injection – ZendDi – Steuerung der Abhängigkeiten von Objekten – $b = new MovieLister(new MovieFinder)); – MovieLister ist abhängig von MovieFinder – MovieFinder wird in MovieLister injiziert 18./19.08.2012 6. PHP Unconference in Hamburg 6 von 24
  • 7. Zend Framework 2 Neue Konzepte im ZF2 (III) ● Service Locator – ZendServiceManager – Zentrale Registrierung für Objekte zur späteren Wiederverwendung – Ersetzt Zend_Registry ● Event-Driven Architecture – ZendEventManager – 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 18./19.08.2012 6. PHP Unconference in Hamburg 7 von 24
  • 8. Zend Framework 2 Neue Konzepte im ZF2 (IV) ● Neuer Autoloader – ZendLoader – 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 – ZendStdlibAbstractOptions 18./19.08.2012 6. PHP Unconference in Hamburg 8 von 24
  • 9. Zend Framework 2 Neue Konzepte im ZF2 (V) ● Annotations namespace MyVendorModel; use ZendFormAnnotation; /** * @AnnotationHydrator("ZendStdlibHydratorObjectProperty") * @AnnotationName("user") */ class User { /** * @AnnotationAttributes({"type":"text" }) * @AnnotationValidator({"type":"Regex","options":{"regex":"/^[a-zA-Z][a-zA-Z0-9_-]{1,19}/"}}) * @AnnotationOptions({"label":"Username:"}) */ public $username; /** * @AnnotationType("ZendFormElementEmail") * @AnnotationOptions({"label":"Your email address:"}) */ public $email; } 18./19.08.2012 6. PHP Unconference in Hamburg 9 von 24
  • 10. Zend Framework 2 Alte Komponenten in neuem Gewand (I) ● ZendAuthentication ● ZendFeed ● ZendBarcode ● ZendFile ● ZendCache ● ZendFilter ● ZendCaptcha ● ZendForm ● ZendConsole ● ZendHttp ● ZendCode ● ZendInputFilter ● ZendConfig ● ZendJson ● ZendDb ● ZendLdap ● ZendDebug ● ZendLoader ● ZendDom ● ZendLog 18./19.08.2012 6. PHP Unconference in Hamburg 10 von 24
  • 11. Zend Framework 2 Alte Komponenten in neuem Gewand (II) ● ZendMail ● ZendSession ● ZendMemory ● ZendSoap ● ZendMime ● ZendTag ● ZendMvc ● ZendText ● ZendNavigation ● ZendUri ● ZendPagination ● ZendValidator ● ZendPermissionsAcl ● ZendVersion ● ZendProgressbar ● ZendView ● ZendSerializer ● ZendXmlRpc ● ZendServer 18./19.08.2012 6. PHP Unconference in Hamburg 11 von 24
  • 12. Zend Framework 2 Neue Komponenten mit neuem Glanz ● ZendCrypt ● ZendDi ● ZendEscaper ● ZendEventManager ● ZendI18n + ● ZendMath ● ZendModuleManager ● ZendServiceManager ● ZendStdlib 18./19.08.2012 6. PHP Unconference in Hamburg 12 von 24
  • 13. Zend Framework 2 Der Rest: vergessen, verraten & verkauft ● Zend_Amf * ● Zend_Pdf * ● Zend_Cloud * ● Zend_Queue * ● Zend_Currency + ● Zend_Reflection ● Zend_Date + ● Zend_Registry ● Zend_Dojo ● Zend_Rest * ● Zend_Gdata * ● Zend_Search_Lucene * ● Zend_InfoCard ● Zend_Service * ● Zend_Locale + ● Zend_Test ● Zend_Markup * ● Zend_TimeSync * ● Zend_Measure + ● Zend_Tool * ● Zend_OAuth * ● Zend_Translate + ● Zend_OpenId * ● Zend_Wildfire 18./19.08.2012 6. PHP Unconference in Hamburg 13 von 24
  • 14. 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, ...) 18./19.08.2012 6. PHP Unconference in Hamburg 14 von 24
  • 15. 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 18./19.08.2012 6. PHP Unconference in Hamburg 15 von 24
  • 16. 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 18./19.08.2012 6. PHP Unconference in Hamburg 16 von 24
  • 17. Zend Framework 2 http://modules.zendframework.com/ ● BjyProfiler ● DoctrineModule ● DojoModule ● TwitterBootstrap ● ZendSkeletonModule ● ZendDeveloperTools ● ZfcTwitterBootstrap ● ZfcUser ● ZeTwig 18./19.08.2012 6. PHP Unconference in Hamburg 17 von 24
  • 18. Zend Framework 2 Struktur für Applikationen und Module Quelle: Zend Framework 2 2.0.0rc3 documentation 18./19.08.2012 6. PHP Unconference in Hamburg 18 von 24
  • 19. 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 18./19.08.2012 6. PHP Unconference in Hamburg 19 von 24
  • 20. Zend Framework 2 Mitmachen beim ZF? ● Dokumentation – http://zf2.readthedocs.org/ Edit this document – fw-docs@lists.zend.com – Tutorial – Übersetzung ● Module – http://modules.zendframework.com/ ● Bugtracker – http://framework.zend.com/issues/browse/ZF2 18./19.08.2012 6. PHP Unconference in Hamburg 20 von 24
  • 21. 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/ 18./19.08.2012 6. PHP Unconference in Hamburg 21 von 24
  • 22. Zend Framework 2 TEIL 2 Ein kleines Beispiel (wenn noch Zeit ist) 18./19.08.2012 6. PHP Unconference in Hamburg 22 von 24
  • 23. Zend Framework 2 TEIL 3 Fragen? Meinungen? Neue Chuck Norris Witze? 18./19.08.2012 6. PHP Unconference in Hamburg 23 von 24
  • 24. Zend Framework 2 Danke für Eure Aufmerksamkeit! Ralf Eggert <r.eggert@travello.com> Tobias Ranft <tobias@ranft.biz> 18./19.08.2012 6. PHP Unconference in Hamburg 24 von 24