SlideShare uma empresa Scribd logo
1 de 76
Das Zend Framework
Hält der Name, was er verspricht?
Carsten Lucke
                                 Das Zend Framework



Sprecher: Carsten Lucke
• Sofware-Ingenieur bei der sd&m AG,
  München
• Aktives Mitglied der sd&m Client-
  Community
• PEAR und PECL Entwickler
• Schreibt für Fachzeitschriften/-bücher über
  diverse PHP-Themen
                                                      2
Carsten Lucke
                               Das Zend Framework



Agenda
•   Einführung und Überblick über das ZF
•   Framework oder Komponentenbibliothek?
•   Fortgeschrittene Techniken
•   Bewertung




                                                    3
Carsten Lucke
                            Das Zend Framework




               Agenda

> Einführung und Überblick über das ZF
  Framework oder Komponentenbibliothek?
  Fortgeschrittene Techniken
  Bewertung


                                                 4
Carsten Lucke
                                       Das Zend Framework



Was ist das ZF?
• Teils Application Framework, teils
  Component Library
• Open-Source
• Basiert auf PHP 5, objektorientiert entwickelt
• Liefert sauberen und stabilen Code mit sehr
  guter Dokumentation


                                                            5
Carsten Lucke
                Das Zend Framework



Umfang des ZF




                                     6
Carsten Lucke
                                           Das Zend Framework



Umfang des ZF
• Core Infrastructure: Zend_Cache, Zend_Config, Zend_Log, ...




                                                                6
Carsten Lucke
                                           Das Zend Framework



Umfang des ZF
• Core Infrastructure: Zend_Cache, Zend_Config, Zend_Log, ...
• MVC: Zend_Controller, Zend_View, ...




                                                                6
Carsten Lucke
                                           Das Zend Framework



Umfang des ZF
• Core Infrastructure: Zend_Cache, Zend_Config, Zend_Log, ...
• MVC: Zend_Controller, Zend_View, ...
• Auth: Zend_Acl, Zend_Auth, Zend_Session




                                                                6
Carsten Lucke
                                             Das Zend Framework



Umfang des ZF
•   Core Infrastructure: Zend_Cache, Zend_Config, Zend_Log, ...
•   MVC: Zend_Controller, Zend_View, ...
•   Auth: Zend_Acl, Zend_Auth, Zend_Session
•   Database: Zend_Db, Zend_Db_Adapter, ...




                                                                  6
Carsten Lucke
                                             Das Zend Framework



Umfang des ZF
•   Core Infrastructure: Zend_Cache, Zend_Config, Zend_Log, ...
•   MVC: Zend_Controller, Zend_View, ...
•   Auth: Zend_Acl, Zend_Auth, Zend_Session
•   Database: Zend_Db, Zend_Db_Adapter, ...
•   Mail, Formats & Search: Zend_Json, Zend_Mail,
    Zend_Search, ...




                                                                  6
Carsten Lucke
                                           Das Zend Framework



Umfang des ZF
• Core Infrastructure: Zend_Cache, Zend_Config, Zend_Log, ...
• MVC: Zend_Controller, Zend_View, ...
• Auth: Zend_Acl, Zend_Auth, Zend_Session
• Database: Zend_Db, Zend_Db_Adapter, ...
• Mail, Formats & Search: Zend_Json, Zend_Mail,
  Zend_Search, ...
• i18n/l10n: Zend_Date, Zend_Measure, Zend_Translate, ...




                                                                6
Carsten Lucke
                                           Das Zend Framework



Umfang des ZF
• Core Infrastructure: Zend_Cache, Zend_Config, Zend_Log, ...
• MVC: Zend_Controller, Zend_View, ...
• Auth: Zend_Acl, Zend_Auth, Zend_Session
• Database: Zend_Db, Zend_Db_Adapter, ...
• Mail, Formats & Search: Zend_Json, Zend_Mail,
  Zend_Search, ...
• i18n/l10n: Zend_Date, Zend_Measure, Zend_Translate, ...
• Web/Webservices: Zend_Http, Zend_XmlRpc, Zend_Rest,
  Zend_Feed, Zend_Service_*, ...

                                                                6
Carsten Lucke
                            Das Zend Framework




              Agenda

 Einführung und Überblick über das ZF
> Framework oder Komponentenbibliothek?
 Fortgeschrittene Techniken
 Bewertung


                                                 7
Carsten Lucke
                           Das Zend Framework



Was bietet das ZF?
Framework-Teil:   Komponenten-Teil:




                                                 8
Carsten Lucke
                             Das Zend Framework



Was bietet das ZF?
 Framework-Teil:    Komponenten-Teil:
• MVC-Komponenten




                                                   8
Carsten Lucke
                                       Das Zend Framework



Was bietet das ZF?
 Framework-Teil:              Komponenten-Teil:
• MVC-Komponenten
• Front-Controller basierte
   MVC-Implementierung




                                                             8
Carsten Lucke
                                       Das Zend Framework



Was bietet das ZF?
 Framework-Teil:              Komponenten-Teil:
• MVC-Komponenten
• Front-Controller basierte
   MVC-Implementierung
• Requestverarbeitung:
   Controller/Action



                                                             8
Carsten Lucke
                                      Das Zend Framework



Was bietet das ZF?
 Framework-Teil:             Komponenten-Teil:
• MVC-Komponenten           • Authentication &
                              Authorization
• Front-Controller basierte
   MVC-Implementierung
• Requestverarbeitung:
   Controller/Action



                                                            8
Carsten Lucke
                                      Das Zend Framework



Was bietet das ZF?
 Framework-Teil:             Komponenten-Teil:
• MVC-Komponenten           • Authentication &
                              Authorization
• Front-Controller basierte
   MVC-Implementierung      • Database
• Requestverarbeitung:
   Controller/Action



                                                            8
Carsten Lucke
                                     Das Zend Framework



Was bietet das ZF?
 Framework-Teil:             Komponenten-Teil:
• MVC-Komponenten           • Authentication &
                              Authorization
• Front-Controller basierte
   MVC-Implementierung      • Database
• Requestverarbeitung:      • Mail, Formats & Search
   Controller/Action



                                                          8
Carsten Lucke
                                        Das Zend Framework



Was bietet das ZF?
 Framework-Teil:               Komponenten-Teil:
• MVC-Komponenten             • Authentication &
                                Authorization
• Front-Controller basierte
   MVC-Implementierung        • Database
• Requestverarbeitung:        • Mail, Formats & Search
   Controller/Action          • Internationalisierung



                                                             8
Carsten Lucke
                                        Das Zend Framework



Was bietet das ZF?
 Framework-Teil:               Komponenten-Teil:
• MVC-Komponenten             • Authentication &
                                Authorization
• Front-Controller basierte
   MVC-Implementierung        • Database
• Requestverarbeitung:        • Mail, Formats & Search
   Controller/Action          • Internationalisierung
                              • Web / Webservices

                                                             8
Carsten Lucke
                  Das Zend Framework




Der „Framework-Anteil“ des
     Zend Framework



                                       9
Carsten Lucke
                     Das Zend Framework


Requestverarbeitung des ZF




                                         10
Carsten Lucke
                     Das Zend Framework


Requestverarbeitung des ZF


      Hostname




                                         10
Carsten Lucke
                             Das Zend Framework


Requestverarbeitung des ZF
                Controller




                                                 10
Carsten Lucke
                     Das Zend Framework


Requestverarbeitung des ZF


           Action




                                         10
Carsten Lucke
                     Das Zend Framework


Requestverarbeitung des ZF
                     Requestparameter




                                           10
Carsten Lucke
                              Das Zend Framework


Requestverarbeitung des ZF



http://myhost.com/   IndexController :: indexAction




                                                     10
Carsten Lucke
                                       Das Zend Framework


Requestverarbeitung des ZF



http://myhost.com/            IndexController :: indexAction

http://myhost.com/projects/   ProjectsController :: indexAction




                                                              10
Carsten Lucke
                                               Das Zend Framework


Requestverarbeitung des ZF



http://myhost.com/                   IndexController :: indexAction

http://myhost.com/projects/          ProjectsController :: indexAction

http://myhost.com/projects/detail/   ProjectsController :: detailAction

                                                                      10
Carsten Lucke
                    Das Zend Framework



Requestlebenszyklus des ZF




                                        11
Carsten Lucke
                                   Das Zend Framework



Requestlebenszyklus des ZF
                Front-Controller


Request:
http://host/index/bar/




                                                       11
Carsten Lucke
                                                      Das Zend Framework



Requestlebenszyklus des ZF
                                             Router
                Front-Controller


Request:
http://host/index/bar/             Routing




                                                                          11
Carsten Lucke
                                                                        Das Zend Framework



Requestlebenszyklus des ZF
                                             Router        Dispatcher
                Front-Controller


Request:
http://host/index/bar/             Routing




                                             Dispatching




                                                                                            11
Carsten Lucke
                                                                        Das Zend Framework



Requestlebenszyklus des ZF
                                             Router        Dispatcher           IndexController
                Front-Controller


Request:
http://host/index/bar/             Routing




                                             Dispatching
                                                                        barAction()




                                                                                                  11
Carsten Lucke
                                                                             Das Zend Framework



Requestlebenszyklus des ZF
                                             Router             Dispatcher           IndexController
                Front-Controller


Request:
http://host/index/bar/             Routing




                                             Dispatching
                                                                             barAction()



                                        Wiederholung bis Request dispatched ist




                                                                                                       11
Carsten Lucke
                                                                             Das Zend Framework



Requestlebenszyklus des ZF
                                             Router             Dispatcher           IndexController
                Front-Controller


Request:
http://host/index/bar/             Routing




                                             Dispatching
                                                                             barAction()



                                        Wiederholung bis Request dispatched ist

      Response



                                                                                                       11
Carsten Lucke
                      Das Zend Framework



Typische Verzeichnisstruktur




                                          12
Carsten Lucke
                                Das Zend Framework



Typische Verzeichnisstruktur
     RewriteEngine on
     RewriteRule .* index.php




                                                    12
Carsten Lucke
                                Das Zend Framework



Typische Verzeichnisstruktur
     RewriteEngine on
     RewriteRule .* index.php



    deny from all




                                                    12
Carsten Lucke
                                Das Zend Framework



Typische Verzeichnisstruktur
     RewriteEngine on
     RewriteRule .* index.php



    deny from all




       deny from all




                                                    12
Carsten Lucke
                                           Das Zend Framework



Typische Verzeichnisstruktur
     RewriteEngine on
     RewriteRule .* index.php



    deny from all




       deny from all


                       RewriteEngine off


                                                               12
Carsten Lucke
                                Das Zend Framework


Action-Controller für die Dialog/
Client-Logik
• Fachliche Verarbeitung eines Requests
   • Usecase-Aufrufe
   • Lesen anzuzeigender Daten aus DB etc.
   • Speichern eingegebener Daten
• Rendern der anzuzeigenden Seite mit Hilfe
  von Views

                                                    13
Carsten Lucke
                                                                 Das Zend Framework


Action-Controller für die Dialog/Client-Logik
 class IndexController extends Zend_Controller_Action
 {
   protected $_view = null;

     public function init()
     {
       parent::init();
       $this->_view = $this->getInvokeArg('view');
     }

     public function indexAction() {
       $this->_view->title = 'Road-racing riders list';
       $this->_view->riders = array('Lance Armstrong', 'Erik Zabel', 'Tom Boonen');
       $this->_response->appendBody( $this->_view->render('riderslist.phtml') );
     }
 }
                                                                                          14
Carsten Lucke
                                Das Zend Framework



Views für die Präsentation
• Separation von Präsentation und Logik bzw.
  Datenhaltung
• Ausschließlich Wissen über die Präsentation
• Eigene View-Datenhaltung möglich
• Rendering der anzuzeigenden Webseite (oder
  Teilen davon)

                                                    15
Carsten Lucke
                                                               Das Zend Framework


Views für die Präsentation
 <html>
  <head>
   <meta http-equiv=quot;Content-typequot; content=quot;text/html; charset=utf-8quot;>
   <title><?php echo $this->escape($this->title); ?></title>
  </head>

  <body>
   <table border=quot;0quot; cellspacing=quot;5quot; cellpadding=quot;5quot;>
     <tr><th>Name</th></tr>
     <?php
        foreach ($this->riders as $rider) {
           echo quot;<tr><td>{$this->escape($rider)}</td></tr>quot;;
        }
     ?>
   </table>
  </body>
 </html>
                                                                                   16
Carsten Lucke
                   Das Zend Framework




Der „Komponenten-Anteil“ des
      Zend Framework



                                       17
Carsten Lucke
                                   Das Zend Framework



Komponentenüberblick ZF
• Hohe Anzahl an Komponenten
• Abdeckung vieler Bereiche:
  • Auth, I18N, Webservices, Database, etc.
• Gute Dokumentation und viele Beispiele




                                                        18
Carsten Lucke
                      Das Zend Framework


Demonstration: ZF-Komponenten
zur Abfrage eines RSS-Feed
Anforderungen:




                                          19
Carsten Lucke
                                   Das Zend Framework


Demonstration: ZF-Komponenten
zur Abfrage eines RSS-Feed
 Anforderungen:
• Abfrage der Feed-Informationen




                                                       19
Carsten Lucke
                                  Das Zend Framework


Demonstration: ZF-Komponenten
zur Abfrage eines RSS-Feed
 Anforderungen:
• Abfrage der Feed-Informationen
• Fehlerbehandlung bei Nichterreichbarkeit




                                                       19
Carsten Lucke
                                  Das Zend Framework


Demonstration: ZF-Komponenten
zur Abfrage eines RSS-Feed
 Anforderungen:
• Abfrage der Feed-Informationen
• Fehlerbehandlung bei Nichterreichbarkeit
• Caching der Ergebnisse




                                                       19
Carsten Lucke
                                  Das Zend Framework


Demonstration: ZF-Komponenten
zur Abfrage eines RSS-Feed
 Anforderungen:
• Abfrage der Feed-Informationen
• Fehlerbehandlung bei Nichterreichbarkeit
• Caching der Ergebnisse

Eingesetzte Komponenten:


                                                       19
Carsten Lucke
                                  Das Zend Framework


Demonstration: ZF-Komponenten
zur Abfrage eines RSS-Feed
 Anforderungen:
• Abfrage der Feed-Informationen
• Fehlerbehandlung bei Nichterreichbarkeit
• Caching der Ergebnisse

 Eingesetzte Komponenten:
• Zend_Feed & Zend_Cache
                                                       19
Carsten Lucke
                                                               Das Zend Framework


Demonstration: Zend_Feed
 try {
   $feed = Zend_Feed::import('http://blog.lucke.info/feed');
   $channel = array(
      'title'       => $feed->title(),
      'link'        => $feed->link(),
      'description' => $feed->description(),
      'items'        => array());

   foreach ($feed as $item) {
     $channel['items'][] = array(
         'title'       => $item->title(),
         'link'        => $item->link(),
         'description' => $item->description());
   }
   print_r($channel);
 } catch (Zend_Feed_Exception $e) {
     // Exception-Handling (Timeout, 404, etc.)
 }
                                                                                   20
Carsten Lucke
                                           Das Zend Framework



Demonstration: Zend_Cache
• 4 Parameter zur Erzeugung einer Cache-Instanz:
  • Frontend, Backend, Frontend-Options, Backend-Options

• Frontends (Was wird gecached?):
  • Core, Output, Function, Class, File, Page

• Backends (Wohin wird gecached?):
  • File, Sqlite, Memcached, APC, ZendPlatform

                                                               21
Carsten Lucke
                                                              Das Zend Framework


Demonstration: Zend_Cache
 $frontendOpt = array(
     'lifetime'               => 300,   // cache lifetime in seconds
     'automaticSerialization' => true);
 $backendOpt = array( 'cacheDir' => './cache' );
 $cache         = Zend_Cache::factory('Core', 'File', $frontendOpt, $backendOpt);

 $cacheId = 'feed_blog_lucke_info';
 $feedInfo = $cache->load($cacheId);

 if (! $feedInfo) {
   // cache-miss
   $feedInfo = getFeedInfo('http://blog.lucke.info/feed');
   $cache->save($feedInfo, $cacheId);
 } else {
   // cache-hit, Feed-Info bereits verfügbar
 }
 print_r($feedInfo);
                                                                                       22
Carsten Lucke
                           Das Zend Framework




              Agenda

 Einführung und Überblick über das ZF
 Framework oder Komponentenbibliothek?
> Fortgeschrittene Techniken
 Bewertung


                                               23
Carsten Lucke
                                 Das Zend Framework


Projektstruktur für größere Projekte
• Projektstruktur erlaubt
  Subprojekte
• Zend_Controller_Front
   :: setControllerDirectory()
• Zend_Controller_Front
   :: addControllerDirectory()
• Zend_View :: setScriptPath()
• Zend_View :: addScriptPath()
                                                     24
Carsten Lucke
                                                         Das Zend Framework


Projektstruktur für größere Projekte
[...]

$controller = Zend_Controller_Front::getInstance();
$controller->setControllerDirectory(
     'application/controllers');
$controller->addControllerDirectory(
     'application/subproject1/controllers', 'sub1');
$controller->returnResponse(true);
$controller->throwExceptions(true);

$view = new Zend_View();
$view->setScriptPath('application/views');
$view->addScriptPath('application/subproject1/views');
$controller->setParam('view', $view);

[...]
                                                                             24
Carsten Lucke
                                                              Das Zend Framework


Projektstruktur für größere Projekte
[...]

$controller = Zend_Controller_Front::getInstance();
$controller->setControllerDirectory(
     'application/controllers');                     http://myhost/sub1/myctrl/myaction
$controller->addControllerDirectory(
     'application/subproject1/controllers', 'sub1');
$controller->returnResponse(true);
$controller->throwExceptions(true);

$view = new Zend_View();
$view->setScriptPath('application/views');
$view->addScriptPath('application/subproject1/views');
$controller->setParam('view', $view);

[...]
                                                                                       24
Carsten Lucke
                               Das Zend Framework



Template-basierte Views
• Zend_View_Interface als Schnittstelle
• Template-Engine Ihrer Wahl anstelle von
  PHP/HTML Views
• Rahmentemplate mit Platzhaltern anstelle
  von Includes innerhalb von Views



                                                   25
Carsten Lucke
                                 Das Zend Framework


Mehrere Actions zur Request-
abarbeitung
• Aufteilung der fachlichen Abarbeitung eines
  Request auf mehrere Controller
• Dispatch-Zyklus erlaubt Einsatz mehrerer
  Controller/Actions zur Requestabarbeitung
   • „Forwarding“: $this->_forward()
• Problem: Controller haben dadurch Kenntnis
  von einander
                                                     26
Carsten Lucke
                               Das Zend Framework


Mehrere Actions zur Request-
abarbeitung :: Lösungsansatz
• Abstrakte Action-Basisklasse zur
  Verwaltung eines Navigation-Stack
  • init() zur Initialisierung des Stack
  • myForward() statt _forward()
  • postDispatch() für „Forwarding“ mit mod.
    Navigation-Stack als Kontextparameter
                                                   27
Carsten Lucke
                           Das Zend Framework




              Agenda

 Einführung und Überblick über das ZF
 Framework oder Komponentenbibliothek?
 Fortgeschrittene Techniken
> Bewertung

                                               28
Carsten Lucke
                        Das Zend Framework



Bewertung des Zend Framework
Pro:          Contra:




                                            29
Carsten Lucke
                               Das Zend Framework



Bewertung des Zend Framework
Pro:                 Contra:
• Durchdachte MVC-
  Umsetzung




                                                   29
Carsten Lucke
                                    Das Zend Framework



Bewertung des Zend Framework
Pro:                      Contra:
• Durchdachte MVC-
  Umsetzung
• Viele Komponenten für
  Querschnitts- und
  Spezialaufgaben




                                                        29
Carsten Lucke
                                    Das Zend Framework



Bewertung des Zend Framework
Pro:                      Contra:
• Durchdachte MVC-
  Umsetzung
• Viele Komponenten für
  Querschnitts- und
  Spezialaufgaben
• Hohe Qualität




                                                        29
Carsten Lucke
                                    Das Zend Framework



Bewertung des Zend Framework
Pro:                      Contra:
• Durchdachte MVC-
  Umsetzung
• Viele Komponenten für
  Querschnitts- und
  Spezialaufgaben
• Hohe Qualität
• Gute Dokumentation


                                                        29
Carsten Lucke
                                      Das Zend Framework



Bewertung des Zend Framework
Pro:                      Contra:
• Durchdachte MVC-        • Einsatz von Zend_View in
  Umsetzung                 größeren Projekten / kompl.
                            Views zu überdenken
• Viele Komponenten für
  Querschnitts- und
  Spezialaufgaben
• Hohe Qualität
• Gute Dokumentation


                                                          29
Carsten Lucke
                                      Das Zend Framework



Bewertung des Zend Framework
Pro:                      Contra:
• Durchdachte MVC-        • Einsatz von Zend_View in
  Umsetzung                 größeren Projekten / kompl.
                            Views zu überdenken
• Viele Komponenten für
  Querschnitts- und       • Für größere Projekte evtl.
  Spezialaufgaben           noch „Framework-Arbeit“
                            notwendig
• Hohe Qualität
• Gute Dokumentation


                                                          29
Carsten Lucke
                                      Das Zend Framework



Bewertung des Zend Framework
Pro:                      Contra:
• Durchdachte MVC-        • Einsatz von Zend_View in
  Umsetzung                 größeren Projekten / kompl.
                            Views zu überdenken
• Viele Komponenten für
  Querschnitts- und       • Für größere Projekte evtl.
  Spezialaufgaben           noch „Framework-Arbeit“
                            notwendig
• Hohe Qualität
                          • Framework für stark
• Gute Dokumentation
                            dialogbasierte Systeme evtl.
                            nicht der richtige Ansatz
                                                           29
Carsten Lucke
                        Das Zend Framework




Vielen Dank für Ihre Aufmerksamkeit!

        Haben Sie Fragen?

                      http://lucke.info

                                            30

Mais conteúdo relacionado

Mais procurados

OC|Webcast: Schnell und clever in die AWS Cloud – Migrationsszenarien und Han...
OC|Webcast: Schnell und clever in die AWS Cloud – Migrationsszenarien und Han...OC|Webcast: Schnell und clever in die AWS Cloud – Migrationsszenarien und Han...
OC|Webcast: Schnell und clever in die AWS Cloud – Migrationsszenarien und Han...OPITZ CONSULTING Deutschland
 
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
 
20160310_ModernApplicationDevelopment_NoSQL_KPatenge
20160310_ModernApplicationDevelopment_NoSQL_KPatenge20160310_ModernApplicationDevelopment_NoSQL_KPatenge
20160310_ModernApplicationDevelopment_NoSQL_KPatengeKarin Patenge
 
Agile Oracle database modeling and development - APEX Connect 2020
Agile Oracle database modeling and development - APEX Connect 2020Agile Oracle database modeling and development - APEX Connect 2020
Agile Oracle database modeling and development - APEX Connect 2020Torsten Kleiber
 
Überblick zu Oracle Database 12c Release 2
Überblick zu Oracle Database 12c Release 2Überblick zu Oracle Database 12c Release 2
Überblick zu Oracle Database 12c Release 2Ulrike Schwinn
 
ORACLE Lizenzierung - Die größten Fallen in der Praxis
ORACLE Lizenzierung - Die größten Fallen in der PraxisORACLE Lizenzierung - Die größten Fallen in der Praxis
ORACLE Lizenzierung - Die größten Fallen in der PraxisOPITZ CONSULTING Deutschland
 
Das dreckige Dutzend - ADF Migration nach 12c in der IKB - DOAG 2014.
Das dreckige Dutzend - ADF Migration nach 12c in der IKB - DOAG 2014.Das dreckige Dutzend - ADF Migration nach 12c in der IKB - DOAG 2014.
Das dreckige Dutzend - ADF Migration nach 12c in der IKB - DOAG 2014.Torsten Kleiber
 
Regulatorics: Offside is when the referee whistles - DOAG 2018
Regulatorics: Offside is when the referee whistles - DOAG 2018Regulatorics: Offside is when the referee whistles - DOAG 2018
Regulatorics: Offside is when the referee whistles - DOAG 2018Torsten Kleiber
 
Oracle12c threaded execution - Ressourcen sparen zum Nulltarif?!?
Oracle12c threaded execution - Ressourcen sparen zum Nulltarif?!?Oracle12c threaded execution - Ressourcen sparen zum Nulltarif?!?
Oracle12c threaded execution - Ressourcen sparen zum Nulltarif?!?Trivadis
 
Integrationsszenarien in modernen Anwendungslandschaften - OPITZ CONSULTING -...
Integrationsszenarien in modernen Anwendungslandschaften - OPITZ CONSULTING -...Integrationsszenarien in modernen Anwendungslandschaften - OPITZ CONSULTING -...
Integrationsszenarien in modernen Anwendungslandschaften - OPITZ CONSULTING -...OPITZ CONSULTING Deutschland
 
Infinispan - NoSQL für den Enterprise Java Alltag
Infinispan - NoSQL für den Enterprise Java AlltagInfinispan - NoSQL für den Enterprise Java Alltag
Infinispan - NoSQL für den Enterprise Java Alltaggedoplan
 
Bob the Builder - Build & Deploy von ADF Enterprise Anwendungen
Bob the Builder - Build & Deploy von ADF Enterprise AnwendungenBob the Builder - Build & Deploy von ADF Enterprise Anwendungen
Bob the Builder - Build & Deploy von ADF Enterprise AnwendungenTorsten Kleiber
 
Codd & ACID - ein Ausflug in die Datenbank-Theorie und Geschichte
Codd & ACID - ein Ausflug in die Datenbank-Theorie und GeschichteCodd & ACID - ein Ausflug in die Datenbank-Theorie und Geschichte
Codd & ACID - ein Ausflug in die Datenbank-Theorie und GeschichteMarkus Flechtner
 

Mais procurados (13)

OC|Webcast: Schnell und clever in die AWS Cloud – Migrationsszenarien und Han...
OC|Webcast: Schnell und clever in die AWS Cloud – Migrationsszenarien und Han...OC|Webcast: Schnell und clever in die AWS Cloud – Migrationsszenarien und Han...
OC|Webcast: Schnell und clever in die AWS Cloud – Migrationsszenarien und Han...
 
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
 
20160310_ModernApplicationDevelopment_NoSQL_KPatenge
20160310_ModernApplicationDevelopment_NoSQL_KPatenge20160310_ModernApplicationDevelopment_NoSQL_KPatenge
20160310_ModernApplicationDevelopment_NoSQL_KPatenge
 
Agile Oracle database modeling and development - APEX Connect 2020
Agile Oracle database modeling and development - APEX Connect 2020Agile Oracle database modeling and development - APEX Connect 2020
Agile Oracle database modeling and development - APEX Connect 2020
 
Überblick zu Oracle Database 12c Release 2
Überblick zu Oracle Database 12c Release 2Überblick zu Oracle Database 12c Release 2
Überblick zu Oracle Database 12c Release 2
 
ORACLE Lizenzierung - Die größten Fallen in der Praxis
ORACLE Lizenzierung - Die größten Fallen in der PraxisORACLE Lizenzierung - Die größten Fallen in der Praxis
ORACLE Lizenzierung - Die größten Fallen in der Praxis
 
Das dreckige Dutzend - ADF Migration nach 12c in der IKB - DOAG 2014.
Das dreckige Dutzend - ADF Migration nach 12c in der IKB - DOAG 2014.Das dreckige Dutzend - ADF Migration nach 12c in der IKB - DOAG 2014.
Das dreckige Dutzend - ADF Migration nach 12c in der IKB - DOAG 2014.
 
Regulatorics: Offside is when the referee whistles - DOAG 2018
Regulatorics: Offside is when the referee whistles - DOAG 2018Regulatorics: Offside is when the referee whistles - DOAG 2018
Regulatorics: Offside is when the referee whistles - DOAG 2018
 
Oracle12c threaded execution - Ressourcen sparen zum Nulltarif?!?
Oracle12c threaded execution - Ressourcen sparen zum Nulltarif?!?Oracle12c threaded execution - Ressourcen sparen zum Nulltarif?!?
Oracle12c threaded execution - Ressourcen sparen zum Nulltarif?!?
 
Integrationsszenarien in modernen Anwendungslandschaften - OPITZ CONSULTING -...
Integrationsszenarien in modernen Anwendungslandschaften - OPITZ CONSULTING -...Integrationsszenarien in modernen Anwendungslandschaften - OPITZ CONSULTING -...
Integrationsszenarien in modernen Anwendungslandschaften - OPITZ CONSULTING -...
 
Infinispan - NoSQL für den Enterprise Java Alltag
Infinispan - NoSQL für den Enterprise Java AlltagInfinispan - NoSQL für den Enterprise Java Alltag
Infinispan - NoSQL für den Enterprise Java Alltag
 
Bob the Builder - Build & Deploy von ADF Enterprise Anwendungen
Bob the Builder - Build & Deploy von ADF Enterprise AnwendungenBob the Builder - Build & Deploy von ADF Enterprise Anwendungen
Bob the Builder - Build & Deploy von ADF Enterprise Anwendungen
 
Codd & ACID - ein Ausflug in die Datenbank-Theorie und Geschichte
Codd & ACID - ein Ausflug in die Datenbank-Theorie und GeschichteCodd & ACID - ein Ausflug in die Datenbank-Theorie und Geschichte
Codd & ACID - ein Ausflug in die Datenbank-Theorie und Geschichte
 

Destaque

Informacion importante sobre devolucion de dinero
Informacion importante sobre devolucion de dineroInformacion importante sobre devolucion de dinero
Informacion importante sobre devolucion de dineroWaldrik Navia
 
Estructura interna de la tierra.. geoo
Estructura interna de la tierra.. geooEstructura interna de la tierra.. geoo
Estructura interna de la tierra.. geooJulianadelbosque
 
120222_Westafrika_SB
120222_Westafrika_SB120222_Westafrika_SB
120222_Westafrika_SBSun-Min Kim
 
Biografía sobre gandhi joni marcos f
Biografía  sobre gandhi joni marcos fBiografía  sobre gandhi joni marcos f
Biografía sobre gandhi joni marcos fReliaras Club
 
NexTReT Gobierno de calidad de servicio
NexTReT Gobierno de calidad de servicioNexTReT Gobierno de calidad de servicio
NexTReT Gobierno de calidad de servicioNexTReT
 
1-1B WOOD DECK TERMINATION
1-1B WOOD DECK TERMINATION1-1B WOOD DECK TERMINATION
1-1B WOOD DECK TERMINATIONARNEL SERRANO
 
Junín y rivadavia, ciudades en red, la experiencia de pp con e voto de 2012
Junín y rivadavia, ciudades en red, la experiencia de pp con e voto de 2012Junín y rivadavia, ciudades en red, la experiencia de pp con e voto de 2012
Junín y rivadavia, ciudades en red, la experiencia de pp con e voto de 2012Javier Gabrielli
 
Creative Commons - Share, Reuse, Remix
Creative Commons - Share, Reuse, RemixCreative Commons - Share, Reuse, Remix
Creative Commons - Share, Reuse, Remixantischokke
 
Große Leistung Laserpointer Blau 5000mw
Große Leistung Laserpointer Blau 5000mwGroße Leistung Laserpointer Blau 5000mw
Große Leistung Laserpointer Blau 5000mwguteracht
 
Los derechos humanos
Los derechos humanosLos derechos humanos
Los derechos humanosReliaras Club
 
Wie werde ich telc-Prüfer?
Wie werde ich telc-Prüfer?Wie werde ich telc-Prüfer?
Wie werde ich telc-Prüfer?telc gGmbH
 

Destaque (20)

Informacion importante sobre devolucion de dinero
Informacion importante sobre devolucion de dineroInformacion importante sobre devolucion de dinero
Informacion importante sobre devolucion de dinero
 
Estructura interna de la tierra.. geoo
Estructura interna de la tierra.. geooEstructura interna de la tierra.. geoo
Estructura interna de la tierra.. geoo
 
120222_Westafrika_SB
120222_Westafrika_SB120222_Westafrika_SB
120222_Westafrika_SB
 
La creación
La creaciónLa creación
La creación
 
6GE5B2Inflación
6GE5B2Inflación6GE5B2Inflación
6GE5B2Inflación
 
Biografía sobre gandhi joni marcos f
Biografía  sobre gandhi joni marcos fBiografía  sobre gandhi joni marcos f
Biografía sobre gandhi joni marcos f
 
TEACHING APPROACHES &
TEACHING APPROACHES &TEACHING APPROACHES &
TEACHING APPROACHES &
 
NexTReT Gobierno de calidad de servicio
NexTReT Gobierno de calidad de servicioNexTReT Gobierno de calidad de servicio
NexTReT Gobierno de calidad de servicio
 
1-1B WOOD DECK TERMINATION
1-1B WOOD DECK TERMINATION1-1B WOOD DECK TERMINATION
1-1B WOOD DECK TERMINATION
 
Junín y rivadavia, ciudades en red, la experiencia de pp con e voto de 2012
Junín y rivadavia, ciudades en red, la experiencia de pp con e voto de 2012Junín y rivadavia, ciudades en red, la experiencia de pp con e voto de 2012
Junín y rivadavia, ciudades en red, la experiencia de pp con e voto de 2012
 
Creative Commons - Share, Reuse, Remix
Creative Commons - Share, Reuse, RemixCreative Commons - Share, Reuse, Remix
Creative Commons - Share, Reuse, Remix
 
Tecnology
TecnologyTecnology
Tecnology
 
Mon Amour
Mon AmourMon Amour
Mon Amour
 
Große Leistung Laserpointer Blau 5000mw
Große Leistung Laserpointer Blau 5000mwGroße Leistung Laserpointer Blau 5000mw
Große Leistung Laserpointer Blau 5000mw
 
E5 DNUG Lotusday
E5 DNUG LotusdayE5 DNUG Lotusday
E5 DNUG Lotusday
 
Umgang Mit Risiken
Umgang Mit RisikenUmgang Mit Risiken
Umgang Mit Risiken
 
C1 CDH Sametime
C1 CDH SametimeC1 CDH Sametime
C1 CDH Sametime
 
Los derechos humanos
Los derechos humanosLos derechos humanos
Los derechos humanos
 
Como creo un blog en 5 minutiños
Como creo un blog en 5 minutiñosComo creo un blog en 5 minutiños
Como creo un blog en 5 minutiños
 
Wie werde ich telc-Prüfer?
Wie werde ich telc-Prüfer?Wie werde ich telc-Prüfer?
Wie werde ich telc-Prüfer?
 

Semelhante a Zend Framework

PHP UG Karlsruhe - Zend Framework Introduction
PHP UG Karlsruhe - Zend Framework IntroductionPHP UG Karlsruhe - Zend Framework Introduction
PHP UG Karlsruhe - Zend Framework Introductionmaexpower
 
Migration zum Zend Framework 3
Migration zum Zend Framework 3Migration zum Zend Framework 3
Migration zum Zend Framework 3Ralf Eggert
 
IPC2017SE - Zend\Expressive Workshop
IPC2017SE - Zend\Expressive WorkshopIPC2017SE - Zend\Expressive Workshop
IPC2017SE - Zend\Expressive WorkshopRalf Eggert
 
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
 
Boost your APEX Deployment and Provisioning with Docker
Boost your APEX Deployment and Provisioning with DockerBoost your APEX Deployment and Provisioning with Docker
Boost your APEX Deployment and Provisioning with DockerSteven Grzbielok
 
Zend Framework 2.0
Zend Framework 2.0Zend Framework 2.0
Zend Framework 2.0Ralf Eggert
 
Desktop Containers 12: Next Generation of ZENworks Application Virtualization
Desktop Containers 12: Next Generation of ZENworks Application VirtualizationDesktop Containers 12: Next Generation of ZENworks Application Virtualization
Desktop Containers 12: Next Generation of ZENworks Application VirtualizationGWAVA
 
Forms and Reports 12c - Processes and Automation in Development and Operations
Forms and Reports 12c - Processes and Automation in Development and OperationsForms and Reports 12c - Processes and Automation in Development and Operations
Forms and Reports 12c - Processes and Automation in Development and OperationsTorsten Kleiber
 
ASP.NET Core – Troublemaker oder Problemsolver?
ASP.NET Core – Troublemaker oder Problemsolver?ASP.NET Core – Troublemaker oder Problemsolver?
ASP.NET Core – Troublemaker oder Problemsolver?POINT. Consulting GmbH
 
Tipps & Tricks zum Aufbau einer Unternehmenscloud mit CC13
Tipps & Tricks zum Aufbau einer Unternehmenscloud mit CC13Tipps & Tricks zum Aufbau einer Unternehmenscloud mit CC13
Tipps & Tricks zum Aufbau einer Unternehmenscloud mit CC13OPITZ CONSULTING Deutschland
 
fn project serverless computing
fn project serverless computingfn project serverless computing
fn project serverless computingWolfgang Weigend
 
Architekturen für .NET Core-Anwendungen
Architekturen für .NET Core-AnwendungenArchitekturen für .NET Core-Anwendungen
Architekturen für .NET Core-AnwendungenRobin Sedlaczek
 
Anwendungsmodernisierung mit Oracle Application Express (APEX)
Anwendungsmodernisierung mit Oracle Application Express (APEX)Anwendungsmodernisierung mit Oracle Application Express (APEX)
Anwendungsmodernisierung mit Oracle Application Express (APEX)Niels de Bruijn
 
Zend Framework 2 - Best Practices
Zend Framework 2 - Best PracticesZend Framework 2 - Best Practices
Zend Framework 2 - Best PracticesRalf Eggert
 

Semelhante a Zend Framework (20)

PHP UG Karlsruhe - Zend Framework Introduction
PHP UG Karlsruhe - Zend Framework IntroductionPHP UG Karlsruhe - Zend Framework Introduction
PHP UG Karlsruhe - Zend Framework Introduction
 
Migration zum Zend Framework 3
Migration zum Zend Framework 3Migration zum Zend Framework 3
Migration zum Zend Framework 3
 
IPC2017SE - Zend\Expressive Workshop
IPC2017SE - Zend\Expressive WorkshopIPC2017SE - Zend\Expressive Workshop
IPC2017SE - Zend\Expressive Workshop
 
Einblicke in Zend Server Cluster Manager
Einblicke in Zend Server Cluster ManagerEinblicke in Zend Server Cluster Manager
Einblicke in Zend Server Cluster Manager
 
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
 
Boost your APEX Deployment and Provisioning with Docker
Boost your APEX Deployment and Provisioning with DockerBoost your APEX Deployment and Provisioning with Docker
Boost your APEX Deployment and Provisioning with Docker
 
Zend Framework 2.0
Zend Framework 2.0Zend Framework 2.0
Zend Framework 2.0
 
Desktop Containers 12: Next Generation of ZENworks Application Virtualization
Desktop Containers 12: Next Generation of ZENworks Application VirtualizationDesktop Containers 12: Next Generation of ZENworks Application Virtualization
Desktop Containers 12: Next Generation of ZENworks Application Virtualization
 
DOAG 2010: ADF Faces RC Best Practice
DOAG 2010: ADF Faces RC Best PracticeDOAG 2010: ADF Faces RC Best Practice
DOAG 2010: ADF Faces RC Best Practice
 
Forms and Reports 12c - Processes and Automation in Development and Operations
Forms and Reports 12c - Processes and Automation in Development and OperationsForms and Reports 12c - Processes and Automation in Development and Operations
Forms and Reports 12c - Processes and Automation in Development and Operations
 
ASP.NET Core – Troublemaker oder Problemsolver?
ASP.NET Core – Troublemaker oder Problemsolver?ASP.NET Core – Troublemaker oder Problemsolver?
ASP.NET Core – Troublemaker oder Problemsolver?
 
Tipps & Tricks zum Aufbau einer Unternehmenscloud mit CC13
Tipps & Tricks zum Aufbau einer Unternehmenscloud mit CC13Tipps & Tricks zum Aufbau einer Unternehmenscloud mit CC13
Tipps & Tricks zum Aufbau einer Unternehmenscloud mit CC13
 
fn project serverless computing
fn project serverless computingfn project serverless computing
fn project serverless computing
 
PHPblue LOS!NRW
PHPblue LOS!NRWPHPblue LOS!NRW
PHPblue LOS!NRW
 
Architekturen für .NET Core-Anwendungen
Architekturen für .NET Core-AnwendungenArchitekturen für .NET Core-Anwendungen
Architekturen für .NET Core-Anwendungen
 
Anwendungsmodernisierung mit Oracle Application Express (APEX)
Anwendungsmodernisierung mit Oracle Application Express (APEX)Anwendungsmodernisierung mit Oracle Application Express (APEX)
Anwendungsmodernisierung mit Oracle Application Express (APEX)
 
PHP auf IBM Plattformen
PHP auf IBM PlattformenPHP auf IBM Plattformen
PHP auf IBM Plattformen
 
Net@night asp.net mvc
Net@night asp.net mvcNet@night asp.net mvc
Net@night asp.net mvc
 
Spring 2.0
Spring 2.0Spring 2.0
Spring 2.0
 
Zend Framework 2 - Best Practices
Zend Framework 2 - Best PracticesZend Framework 2 - Best Practices
Zend Framework 2 - Best Practices
 

Zend Framework

  • 1. Das Zend Framework Hält der Name, was er verspricht?
  • 2. Carsten Lucke Das Zend Framework Sprecher: Carsten Lucke • Sofware-Ingenieur bei der sd&m AG, München • Aktives Mitglied der sd&m Client- Community • PEAR und PECL Entwickler • Schreibt für Fachzeitschriften/-bücher über diverse PHP-Themen 2
  • 3. Carsten Lucke Das Zend Framework Agenda • Einführung und Überblick über das ZF • Framework oder Komponentenbibliothek? • Fortgeschrittene Techniken • Bewertung 3
  • 4. Carsten Lucke Das Zend Framework Agenda > Einführung und Überblick über das ZF Framework oder Komponentenbibliothek? Fortgeschrittene Techniken Bewertung 4
  • 5. Carsten Lucke Das Zend Framework Was ist das ZF? • Teils Application Framework, teils Component Library • Open-Source • Basiert auf PHP 5, objektorientiert entwickelt • Liefert sauberen und stabilen Code mit sehr guter Dokumentation 5
  • 6. Carsten Lucke Das Zend Framework Umfang des ZF 6
  • 7. Carsten Lucke Das Zend Framework Umfang des ZF • Core Infrastructure: Zend_Cache, Zend_Config, Zend_Log, ... 6
  • 8. Carsten Lucke Das Zend Framework Umfang des ZF • Core Infrastructure: Zend_Cache, Zend_Config, Zend_Log, ... • MVC: Zend_Controller, Zend_View, ... 6
  • 9. Carsten Lucke Das Zend Framework Umfang des ZF • Core Infrastructure: Zend_Cache, Zend_Config, Zend_Log, ... • MVC: Zend_Controller, Zend_View, ... • Auth: Zend_Acl, Zend_Auth, Zend_Session 6
  • 10. Carsten Lucke Das Zend Framework Umfang des ZF • Core Infrastructure: Zend_Cache, Zend_Config, Zend_Log, ... • MVC: Zend_Controller, Zend_View, ... • Auth: Zend_Acl, Zend_Auth, Zend_Session • Database: Zend_Db, Zend_Db_Adapter, ... 6
  • 11. Carsten Lucke Das Zend Framework Umfang des ZF • Core Infrastructure: Zend_Cache, Zend_Config, Zend_Log, ... • MVC: Zend_Controller, Zend_View, ... • Auth: Zend_Acl, Zend_Auth, Zend_Session • Database: Zend_Db, Zend_Db_Adapter, ... • Mail, Formats & Search: Zend_Json, Zend_Mail, Zend_Search, ... 6
  • 12. Carsten Lucke Das Zend Framework Umfang des ZF • Core Infrastructure: Zend_Cache, Zend_Config, Zend_Log, ... • MVC: Zend_Controller, Zend_View, ... • Auth: Zend_Acl, Zend_Auth, Zend_Session • Database: Zend_Db, Zend_Db_Adapter, ... • Mail, Formats & Search: Zend_Json, Zend_Mail, Zend_Search, ... • i18n/l10n: Zend_Date, Zend_Measure, Zend_Translate, ... 6
  • 13. Carsten Lucke Das Zend Framework Umfang des ZF • Core Infrastructure: Zend_Cache, Zend_Config, Zend_Log, ... • MVC: Zend_Controller, Zend_View, ... • Auth: Zend_Acl, Zend_Auth, Zend_Session • Database: Zend_Db, Zend_Db_Adapter, ... • Mail, Formats & Search: Zend_Json, Zend_Mail, Zend_Search, ... • i18n/l10n: Zend_Date, Zend_Measure, Zend_Translate, ... • Web/Webservices: Zend_Http, Zend_XmlRpc, Zend_Rest, Zend_Feed, Zend_Service_*, ... 6
  • 14. Carsten Lucke Das Zend Framework Agenda Einführung und Überblick über das ZF > Framework oder Komponentenbibliothek? Fortgeschrittene Techniken Bewertung 7
  • 15. Carsten Lucke Das Zend Framework Was bietet das ZF? Framework-Teil: Komponenten-Teil: 8
  • 16. Carsten Lucke Das Zend Framework Was bietet das ZF? Framework-Teil: Komponenten-Teil: • MVC-Komponenten 8
  • 17. Carsten Lucke Das Zend Framework Was bietet das ZF? Framework-Teil: Komponenten-Teil: • MVC-Komponenten • Front-Controller basierte MVC-Implementierung 8
  • 18. Carsten Lucke Das Zend Framework Was bietet das ZF? Framework-Teil: Komponenten-Teil: • MVC-Komponenten • Front-Controller basierte MVC-Implementierung • Requestverarbeitung: Controller/Action 8
  • 19. Carsten Lucke Das Zend Framework Was bietet das ZF? Framework-Teil: Komponenten-Teil: • MVC-Komponenten • Authentication & Authorization • Front-Controller basierte MVC-Implementierung • Requestverarbeitung: Controller/Action 8
  • 20. Carsten Lucke Das Zend Framework Was bietet das ZF? Framework-Teil: Komponenten-Teil: • MVC-Komponenten • Authentication & Authorization • Front-Controller basierte MVC-Implementierung • Database • Requestverarbeitung: Controller/Action 8
  • 21. Carsten Lucke Das Zend Framework Was bietet das ZF? Framework-Teil: Komponenten-Teil: • MVC-Komponenten • Authentication & Authorization • Front-Controller basierte MVC-Implementierung • Database • Requestverarbeitung: • Mail, Formats & Search Controller/Action 8
  • 22. Carsten Lucke Das Zend Framework Was bietet das ZF? Framework-Teil: Komponenten-Teil: • MVC-Komponenten • Authentication & Authorization • Front-Controller basierte MVC-Implementierung • Database • Requestverarbeitung: • Mail, Formats & Search Controller/Action • Internationalisierung 8
  • 23. Carsten Lucke Das Zend Framework Was bietet das ZF? Framework-Teil: Komponenten-Teil: • MVC-Komponenten • Authentication & Authorization • Front-Controller basierte MVC-Implementierung • Database • Requestverarbeitung: • Mail, Formats & Search Controller/Action • Internationalisierung • Web / Webservices 8
  • 24. Carsten Lucke Das Zend Framework Der „Framework-Anteil“ des Zend Framework 9
  • 25. Carsten Lucke Das Zend Framework Requestverarbeitung des ZF 10
  • 26. Carsten Lucke Das Zend Framework Requestverarbeitung des ZF Hostname 10
  • 27. Carsten Lucke Das Zend Framework Requestverarbeitung des ZF Controller 10
  • 28. Carsten Lucke Das Zend Framework Requestverarbeitung des ZF Action 10
  • 29. Carsten Lucke Das Zend Framework Requestverarbeitung des ZF Requestparameter 10
  • 30. Carsten Lucke Das Zend Framework Requestverarbeitung des ZF http://myhost.com/ IndexController :: indexAction 10
  • 31. Carsten Lucke Das Zend Framework Requestverarbeitung des ZF http://myhost.com/ IndexController :: indexAction http://myhost.com/projects/ ProjectsController :: indexAction 10
  • 32. Carsten Lucke Das Zend Framework Requestverarbeitung des ZF http://myhost.com/ IndexController :: indexAction http://myhost.com/projects/ ProjectsController :: indexAction http://myhost.com/projects/detail/ ProjectsController :: detailAction 10
  • 33. Carsten Lucke Das Zend Framework Requestlebenszyklus des ZF 11
  • 34. Carsten Lucke Das Zend Framework Requestlebenszyklus des ZF Front-Controller Request: http://host/index/bar/ 11
  • 35. Carsten Lucke Das Zend Framework Requestlebenszyklus des ZF Router Front-Controller Request: http://host/index/bar/ Routing 11
  • 36. Carsten Lucke Das Zend Framework Requestlebenszyklus des ZF Router Dispatcher Front-Controller Request: http://host/index/bar/ Routing Dispatching 11
  • 37. Carsten Lucke Das Zend Framework Requestlebenszyklus des ZF Router Dispatcher IndexController Front-Controller Request: http://host/index/bar/ Routing Dispatching barAction() 11
  • 38. Carsten Lucke Das Zend Framework Requestlebenszyklus des ZF Router Dispatcher IndexController Front-Controller Request: http://host/index/bar/ Routing Dispatching barAction() Wiederholung bis Request dispatched ist 11
  • 39. Carsten Lucke Das Zend Framework Requestlebenszyklus des ZF Router Dispatcher IndexController Front-Controller Request: http://host/index/bar/ Routing Dispatching barAction() Wiederholung bis Request dispatched ist Response 11
  • 40. Carsten Lucke Das Zend Framework Typische Verzeichnisstruktur 12
  • 41. Carsten Lucke Das Zend Framework Typische Verzeichnisstruktur RewriteEngine on RewriteRule .* index.php 12
  • 42. Carsten Lucke Das Zend Framework Typische Verzeichnisstruktur RewriteEngine on RewriteRule .* index.php deny from all 12
  • 43. Carsten Lucke Das Zend Framework Typische Verzeichnisstruktur RewriteEngine on RewriteRule .* index.php deny from all deny from all 12
  • 44. Carsten Lucke Das Zend Framework Typische Verzeichnisstruktur RewriteEngine on RewriteRule .* index.php deny from all deny from all RewriteEngine off 12
  • 45. Carsten Lucke Das Zend Framework Action-Controller für die Dialog/ Client-Logik • Fachliche Verarbeitung eines Requests • Usecase-Aufrufe • Lesen anzuzeigender Daten aus DB etc. • Speichern eingegebener Daten • Rendern der anzuzeigenden Seite mit Hilfe von Views 13
  • 46. Carsten Lucke Das Zend Framework Action-Controller für die Dialog/Client-Logik class IndexController extends Zend_Controller_Action { protected $_view = null; public function init() { parent::init(); $this->_view = $this->getInvokeArg('view'); } public function indexAction() { $this->_view->title = 'Road-racing riders list'; $this->_view->riders = array('Lance Armstrong', 'Erik Zabel', 'Tom Boonen'); $this->_response->appendBody( $this->_view->render('riderslist.phtml') ); } } 14
  • 47. Carsten Lucke Das Zend Framework Views für die Präsentation • Separation von Präsentation und Logik bzw. Datenhaltung • Ausschließlich Wissen über die Präsentation • Eigene View-Datenhaltung möglich • Rendering der anzuzeigenden Webseite (oder Teilen davon) 15
  • 48. Carsten Lucke Das Zend Framework Views für die Präsentation <html> <head> <meta http-equiv=quot;Content-typequot; content=quot;text/html; charset=utf-8quot;> <title><?php echo $this->escape($this->title); ?></title> </head> <body> <table border=quot;0quot; cellspacing=quot;5quot; cellpadding=quot;5quot;> <tr><th>Name</th></tr> <?php foreach ($this->riders as $rider) { echo quot;<tr><td>{$this->escape($rider)}</td></tr>quot;; } ?> </table> </body> </html> 16
  • 49. Carsten Lucke Das Zend Framework Der „Komponenten-Anteil“ des Zend Framework 17
  • 50. Carsten Lucke Das Zend Framework Komponentenüberblick ZF • Hohe Anzahl an Komponenten • Abdeckung vieler Bereiche: • Auth, I18N, Webservices, Database, etc. • Gute Dokumentation und viele Beispiele 18
  • 51. Carsten Lucke Das Zend Framework Demonstration: ZF-Komponenten zur Abfrage eines RSS-Feed Anforderungen: 19
  • 52. Carsten Lucke Das Zend Framework Demonstration: ZF-Komponenten zur Abfrage eines RSS-Feed Anforderungen: • Abfrage der Feed-Informationen 19
  • 53. Carsten Lucke Das Zend Framework Demonstration: ZF-Komponenten zur Abfrage eines RSS-Feed Anforderungen: • Abfrage der Feed-Informationen • Fehlerbehandlung bei Nichterreichbarkeit 19
  • 54. Carsten Lucke Das Zend Framework Demonstration: ZF-Komponenten zur Abfrage eines RSS-Feed Anforderungen: • Abfrage der Feed-Informationen • Fehlerbehandlung bei Nichterreichbarkeit • Caching der Ergebnisse 19
  • 55. Carsten Lucke Das Zend Framework Demonstration: ZF-Komponenten zur Abfrage eines RSS-Feed Anforderungen: • Abfrage der Feed-Informationen • Fehlerbehandlung bei Nichterreichbarkeit • Caching der Ergebnisse Eingesetzte Komponenten: 19
  • 56. Carsten Lucke Das Zend Framework Demonstration: ZF-Komponenten zur Abfrage eines RSS-Feed Anforderungen: • Abfrage der Feed-Informationen • Fehlerbehandlung bei Nichterreichbarkeit • Caching der Ergebnisse Eingesetzte Komponenten: • Zend_Feed & Zend_Cache 19
  • 57. Carsten Lucke Das Zend Framework Demonstration: Zend_Feed try { $feed = Zend_Feed::import('http://blog.lucke.info/feed'); $channel = array( 'title' => $feed->title(), 'link' => $feed->link(), 'description' => $feed->description(), 'items' => array()); foreach ($feed as $item) { $channel['items'][] = array( 'title' => $item->title(), 'link' => $item->link(), 'description' => $item->description()); } print_r($channel); } catch (Zend_Feed_Exception $e) { // Exception-Handling (Timeout, 404, etc.) } 20
  • 58. Carsten Lucke Das Zend Framework Demonstration: Zend_Cache • 4 Parameter zur Erzeugung einer Cache-Instanz: • Frontend, Backend, Frontend-Options, Backend-Options • Frontends (Was wird gecached?): • Core, Output, Function, Class, File, Page • Backends (Wohin wird gecached?): • File, Sqlite, Memcached, APC, ZendPlatform 21
  • 59. Carsten Lucke Das Zend Framework Demonstration: Zend_Cache $frontendOpt = array( 'lifetime' => 300, // cache lifetime in seconds 'automaticSerialization' => true); $backendOpt = array( 'cacheDir' => './cache' ); $cache = Zend_Cache::factory('Core', 'File', $frontendOpt, $backendOpt); $cacheId = 'feed_blog_lucke_info'; $feedInfo = $cache->load($cacheId); if (! $feedInfo) { // cache-miss $feedInfo = getFeedInfo('http://blog.lucke.info/feed'); $cache->save($feedInfo, $cacheId); } else { // cache-hit, Feed-Info bereits verfügbar } print_r($feedInfo); 22
  • 60. Carsten Lucke Das Zend Framework Agenda Einführung und Überblick über das ZF Framework oder Komponentenbibliothek? > Fortgeschrittene Techniken Bewertung 23
  • 61. Carsten Lucke Das Zend Framework Projektstruktur für größere Projekte • Projektstruktur erlaubt Subprojekte • Zend_Controller_Front :: setControllerDirectory() • Zend_Controller_Front :: addControllerDirectory() • Zend_View :: setScriptPath() • Zend_View :: addScriptPath() 24
  • 62. Carsten Lucke Das Zend Framework Projektstruktur für größere Projekte [...] $controller = Zend_Controller_Front::getInstance(); $controller->setControllerDirectory( 'application/controllers'); $controller->addControllerDirectory( 'application/subproject1/controllers', 'sub1'); $controller->returnResponse(true); $controller->throwExceptions(true); $view = new Zend_View(); $view->setScriptPath('application/views'); $view->addScriptPath('application/subproject1/views'); $controller->setParam('view', $view); [...] 24
  • 63. Carsten Lucke Das Zend Framework Projektstruktur für größere Projekte [...] $controller = Zend_Controller_Front::getInstance(); $controller->setControllerDirectory( 'application/controllers'); http://myhost/sub1/myctrl/myaction $controller->addControllerDirectory( 'application/subproject1/controllers', 'sub1'); $controller->returnResponse(true); $controller->throwExceptions(true); $view = new Zend_View(); $view->setScriptPath('application/views'); $view->addScriptPath('application/subproject1/views'); $controller->setParam('view', $view); [...] 24
  • 64. Carsten Lucke Das Zend Framework Template-basierte Views • Zend_View_Interface als Schnittstelle • Template-Engine Ihrer Wahl anstelle von PHP/HTML Views • Rahmentemplate mit Platzhaltern anstelle von Includes innerhalb von Views 25
  • 65. Carsten Lucke Das Zend Framework Mehrere Actions zur Request- abarbeitung • Aufteilung der fachlichen Abarbeitung eines Request auf mehrere Controller • Dispatch-Zyklus erlaubt Einsatz mehrerer Controller/Actions zur Requestabarbeitung • „Forwarding“: $this->_forward() • Problem: Controller haben dadurch Kenntnis von einander 26
  • 66. Carsten Lucke Das Zend Framework Mehrere Actions zur Request- abarbeitung :: Lösungsansatz • Abstrakte Action-Basisklasse zur Verwaltung eines Navigation-Stack • init() zur Initialisierung des Stack • myForward() statt _forward() • postDispatch() für „Forwarding“ mit mod. Navigation-Stack als Kontextparameter 27
  • 67. Carsten Lucke Das Zend Framework Agenda Einführung und Überblick über das ZF Framework oder Komponentenbibliothek? Fortgeschrittene Techniken > Bewertung 28
  • 68. Carsten Lucke Das Zend Framework Bewertung des Zend Framework Pro: Contra: 29
  • 69. Carsten Lucke Das Zend Framework Bewertung des Zend Framework Pro: Contra: • Durchdachte MVC- Umsetzung 29
  • 70. Carsten Lucke Das Zend Framework Bewertung des Zend Framework Pro: Contra: • Durchdachte MVC- Umsetzung • Viele Komponenten für Querschnitts- und Spezialaufgaben 29
  • 71. Carsten Lucke Das Zend Framework Bewertung des Zend Framework Pro: Contra: • Durchdachte MVC- Umsetzung • Viele Komponenten für Querschnitts- und Spezialaufgaben • Hohe Qualität 29
  • 72. Carsten Lucke Das Zend Framework Bewertung des Zend Framework Pro: Contra: • Durchdachte MVC- Umsetzung • Viele Komponenten für Querschnitts- und Spezialaufgaben • Hohe Qualität • Gute Dokumentation 29
  • 73. Carsten Lucke Das Zend Framework Bewertung des Zend Framework Pro: Contra: • Durchdachte MVC- • Einsatz von Zend_View in Umsetzung größeren Projekten / kompl. Views zu überdenken • Viele Komponenten für Querschnitts- und Spezialaufgaben • Hohe Qualität • Gute Dokumentation 29
  • 74. Carsten Lucke Das Zend Framework Bewertung des Zend Framework Pro: Contra: • Durchdachte MVC- • Einsatz von Zend_View in Umsetzung größeren Projekten / kompl. Views zu überdenken • Viele Komponenten für Querschnitts- und • Für größere Projekte evtl. Spezialaufgaben noch „Framework-Arbeit“ notwendig • Hohe Qualität • Gute Dokumentation 29
  • 75. Carsten Lucke Das Zend Framework Bewertung des Zend Framework Pro: Contra: • Durchdachte MVC- • Einsatz von Zend_View in Umsetzung größeren Projekten / kompl. Views zu überdenken • Viele Komponenten für Querschnitts- und • Für größere Projekte evtl. Spezialaufgaben noch „Framework-Arbeit“ notwendig • Hohe Qualität • Framework für stark • Gute Dokumentation dialogbasierte Systeme evtl. nicht der richtige Ansatz 29
  • 76. Carsten Lucke Das Zend Framework Vielen Dank für Ihre Aufmerksamkeit! Haben Sie Fragen? http://lucke.info 30