Zend Framework
Einführung

09. Dezember 2008
PHP UG Karlsruhe
Inhalt

    • Part I : Grundlagen eines Frameworks
    • Part II : Verschiedene Frameworks für PHP
    • Part III : Einfüh...
Who’s this guy?



 • Max Stockner
 • Just Another PHP Hacker

 • Student der Informatik
   University of Applied Science ...
Part I




         Frameworks?!
Was ist ein Framework?

 In der Softwareentwicklung ist ein Framework
 eine definierte Struktur in welcher andere
 Software...
Warum sollten wir Frameworks nutzen?


 •   Strukturiertes System
 •   Source Code wird verwaltbarer
 •   Leicht zu erweit...
Was ist MVC?

 • Model-View-Controller Entwurfsmuster
 • Lösungsvorschlag um die Anwendungslogik
   von der Darstellung zu...
MVC in webbasierten Anwendungen

           S     start             S      start



       HTML Kopf            Bootstrap ...
Part II


       Verschiedene
      Frameworks für
           PHP
Kleine Auswahl
Ein paar populäre

 • CakePHP
     Angelehnt nach dem RoR Prinzip
 • CodeIgniter
     MVC Framework
 • Drupal
     Open So...
welches soll ich nehmen?

 • Variiert je nach Verwendungszweck

 • Sorgfältig auswählen
     Community
     Support (komme...
Part III


     Einführung und
     Überblick in das
     Zend Framework
Was ist das ZF?




 • It’s just another PHP Framework
Nee, was ist das jetzt?




 • It’s a glue library
Spass beiseite, ZF?!

 • reine PHP 5 Komponentenbibliothek
 • Open Source
     BSD Lizenz
     CLA Prozess für Mitentwickl...
ZF Philosophie

 • Simpel und erweiterbar
     Einfache Lösung für 80% der Funktionalität
     Einfach erweiterbar für die...
ZF Qualitätsprozess

 • Sag was du machen willst
     Proposal Prozess

 • Mach es einfach
     Objektorientierte Komponen...
Technologie Partner
Was ist dabei im Zend Framework?

  •   MVC                     • Zend_Controller
  •   Database                     Fron...
Was ist dabei im Zend Framework?

  •   MVC                     • Zend_Db_Adapter
  •   Database                   Adapte...
Was ist dabei im Zend Framework?

  •   MVC                     •   Zend_Locale
  •   Database                •   Zend_Dat...
Was ist dabei im Zend Framework?

  •   MVC                     • Zend_Auth
  •   Database                     Zend_Db_Ta...
Was ist dabei im Zend Framework?

  •   MVC                     • Zend_Http_Client
  •   Database                • Zend_Re...
Was ist dabei im Zend Framework?

  •   MVC                     • Zend_Mail
  •   Database                   Read or send...
Was ist dabei im Zend Framework?

  •   MVC                     •   Zend_Cache
  •   Database                •   Zend_Confi...
Was ist dabei im Zend Framework?

                          •   Zend_Amf
  • MVC
                          •   Zend_Captch...
Part IV


          Praktische
           Beispiele
Installation in unter einer Minute

 • Anforderungen:
      Mindestens PHP 5.1.4
       • Empfohlen 5.2.3


 • Installatio...
MVC in der einfachsten Form ...

 • Standard Url-Format:
   http://example.com/product/index
     ‘product’ ist der Name d...
… erstellen wir einen Controller …
… dann noch ne view ...

 • Views mit Zend_View sind nur PHP
… FrontController initialisieren ...

 • “Starte” die Applikation (index.php)




 • .htaccess
Und wir haben ein Ergebnis!

 • Beispiel Ausgabe
Was man wissen sollte

 • ZF schlägt eine Verzeichnisstruktur
   vor:
     application/ beinhaltet die
     eigtl. Anwendu...
ZF MVC Features

 • Handelt alle eingehenden Anfragen und gibt
     die endgültige Ausgabe aus
 •   Router mapped URL und/...
Zend_Config

 • Statische Konfiguration über
     INI
     XML
     arrays

 • Setzt typischerweiße die App.-Umgebung:
     ...
Zend_Config
 • Abfrage nach Bereich
Zend_Config

 • Verberbung pro Section
Zend_Registry

 • Statische Platz zum Aufbewahrung von
   Objekten und Key/Value Paaren für globalen
   Zugriff
Part V


         Ausblick
Was kommt demnächst?

 • Zend_Tool
     Codegenerator
      •   Apache Conf
      •   PHP
      •   SQL
      •   ...     ...
Proposals

 • Proposal Home
     52 neue Vorschläge (unfertig)
     46 fertige Vorschläge
     35 neue Komponenten im Beta...
Danke!
         Mehr über das Zend Framework:
         http://framework.zend.com
Nächste SlideShare
Wird geladen in …5
×

PHP UG Karlsruhe - Zend Framework Introduction

4.239 Aufrufe

Veröffentlicht am

Einführung in das Zend Framework

Veröffentlicht in: Bildung
  • Als Erste(r) kommentieren

PHP UG Karlsruhe - Zend Framework Introduction

  1. 1. Zend Framework Einführung 09. Dezember 2008 PHP UG Karlsruhe
  2. 2. Inhalt • Part I : Grundlagen eines Frameworks • Part II : Verschiedene Frameworks für PHP • Part III : Einführung und Überblick in das ZF • Part IV : Praktische Beispiele • Part V : Ausblick
  3. 3. Who’s this guy? • Max Stockner • Just Another PHP Hacker • Student der Informatik University of Applied Science Karlsruhe • Zend Framework Contributor • Verfolge das ZF seit 0.1.0
  4. 4. Part I Frameworks?!
  5. 5. Was ist ein Framework? In der Softwareentwicklung ist ein Framework eine definierte Struktur in welcher andere Software Projekte organisiert und entwickelt werden. • Ein abstraktes Design • Ein Set von oft genutzter Funktionalität • Entwickelt auf spezielle(n) Bereich(e)
  6. 6. Warum sollten wir Frameworks nutzen? • Strukturiertes System • Source Code wird verwaltbarer • Leicht zu erweitern (80/20!) • Schnelle Entwicklung (RAD) • Projektfremde Entwickler finden sich schneller zurecht, wenn Sie das Framework kennen. • Support/Community
  7. 7. Was ist MVC? • Model-View-Controller Entwurfsmuster • Lösungsvorschlag um die Anwendungslogik von der Darstellung zu abstrahieren. • Model: Controller Data Provider und Datenmanipulationslogik • View: Die Enduseransicht View Model • Controller: Verarbeitet die Anfrage und entscheidet was wo passiert
  8. 8. MVC in webbasierten Anwendungen S start S start HTML Kopf Bootstrap File (single entry point) Setup environment Datenbankverbindung HTML Kopflayout Controller File (application logic) Model File Datenbankabfrage (data logic) View Template File PHP HTML Ausgabe (HTML, JSON, PDF, ...) HTML Fuss end end
  9. 9. Part II Verschiedene Frameworks für PHP
  10. 10. Kleine Auswahl
  11. 11. Ein paar populäre • CakePHP Angelehnt nach dem RoR Prinzip • CodeIgniter MVC Framework • Drupal Open Source Framework und CMS • PRADO Ein MVC Framework • Symfony PHP5 MVC Framework • Zend Framework Komponenten Bibliothek • ezComponents Komponenten Bibliothek
  12. 12. welches soll ich nehmen? • Variiert je nach Verwendungszweck • Sorgfältig auswählen Community Support (kommerziell?) Funktionalität Dokumentation Aktivität
  13. 13. Part III Einführung und Überblick in das Zend Framework
  14. 14. Was ist das ZF? • It’s just another PHP Framework
  15. 15. Nee, was ist das jetzt? • It’s a glue library
  16. 16. Spass beiseite, ZF?! • reine PHP 5 Komponentenbibliothek • Open Source BSD Lizenz CLA Prozess für Mitentwickler • sehr große Dokumentation in vielen Sprachen … leider teilweise sehr technisch. • Qualität geht vor Quantität TDD • mindestens 80% Code Coverage • 90% angestrebt
  17. 17. ZF Philosophie • Simpel und erweiterbar Einfache Lösung für 80% der Funktionalität Einfach erweiterbar für die restlichen 20% • Objektorientiert und agile Methoden Use-at-will Architektur Erweiterbarkeit Ständiges Testen Community spielt eine große Rolle
  18. 18. ZF Qualitätsprozess • Sag was du machen willst Proposal Prozess • Mach es einfach Objektorientierte Komponente entwicklen Schreibe Unit-Test dafür • wenn möglich schon davor (TDD) Dokumentation erstellen • Überpüfe ob es das macht was du sagtest Open Source Entwicklung und Community Bewertung Häufiges testen mit PHPUnit (inkl. code coverage) Zend überprüft auf Erfüllung und Nutzen
  19. 19. Technologie Partner
  20. 20. Was ist dabei im Zend Framework? • MVC • Zend_Controller • Database  Front controller • I18N  Router • Auth and ACLs  Dispatcher • Web Services  Action controller • Mail, Formats, Search  Plugins and Helpers • Utility  Request and Response • Other • Zend_View  PHP-based views  Helpers • Zend_Layout  Two Step Views • Zend_Form
  21. 21. Was ist dabei im Zend Framework? • MVC • Zend_Db_Adapter • Database  Adapters for most • I18N database extensions provided by PHP • Auth and ACLs • Web Services • Zend_Db_Profiler • Mail, Formats, Search • Zend_Db_Select • Utility • Zend_Db_Table • Other  Zend_Db_Table_Rowset  Zend_Db_Table_Row
  22. 22. Was ist dabei im Zend Framework? • MVC • Zend_Locale • Database • Zend_Date • I18N • Zend_Currency • Auth and ACLs • Zend_Timesync • Web Services • Mail, Formats, Search • Zend_Measure • Utility • Zend_Translate • Other  Adapters for PHP arrays, CSV, gettext, Qt, TMX, and Xliff
  23. 23. Was ist dabei im Zend Framework? • MVC • Zend_Auth • Database  Zend_Db_Table adapter • I18N  HTTP Digest • Auth and ACLs  HTTP Basic • Web Services  Write your own adapters • Mail, Formats, Search • Zend_Session • Utility • Zend_Acl • Other  Roles  Resources  Rights
  24. 24. Was ist dabei im Zend Framework? • MVC • Zend_Http_Client • Database • Zend_Rest_Client • I18N • Zend_Service • Auth and ACLs  Many, many popular • Web Services web APIs implemented • Mail, Formats, Search • Zend_Feed • Utility  RSS and Atom • Other • Zend_Gdata  Google access API to most Google services • Zend_XmlRpc  Consume and serve XML-RPC services
  25. 25. Was ist dabei im Zend Framework? • MVC • Zend_Mail • Database  Read or send email • I18N • Zend_Mime • Auth and ACLs  Parse MIME encoded text • Web Services • Zend_Pdf • Mail, Formats, Search  Read, edit, and create PDF • Utility documents • Other • Zend_Search_Lucene  Search Lucene indices  Apache Lucene compatibility
  26. 26. Was ist dabei im Zend Framework? • MVC • Zend_Cache • Database • Zend_Config • I18N • Zend_Console_Getopt • Auth and ACLs • Zend_Filter • Web Services • Mail, Formats, Search • Zend_Filter_Input • Utility • Zend_Loader • Other • Zend_Log • Zend_Memory • Zend_Registry • Zend_Validate
  27. 27. Was ist dabei im Zend Framework? • Zend_Amf • MVC • Zend_Captcha • Database • I18N • Zend_OpenId • Auth and ACLs • Zend_InfoCard • Web Services • Zend_Test • Mail, Formats, Search • ZendX_JQuery • Utility • Other • And much MUCH
  28. 28. Part IV Praktische Beispiele
  29. 29. Installation in unter einer Minute • Anforderungen: Mindestens PHP 5.1.4 • Empfohlen 5.2.3 • Installation: Herunterladen Entpacken loslegen • Konfiguration? set_include_path .htaccess
  30. 30. MVC in der einfachsten Form ... • Standard Url-Format: http://example.com/product/index ‘product’ ist der Name der Controller Klasse ‘index’ ist der Name der Action Methode in dieser Klasse • Controller sind Substantive • Actions sind Verben
  31. 31. … erstellen wir einen Controller …
  32. 32. … dann noch ne view ... • Views mit Zend_View sind nur PHP
  33. 33. … FrontController initialisieren ... • “Starte” die Applikation (index.php) • .htaccess
  34. 34. Und wir haben ein Ergebnis! • Beispiel Ausgabe
  35. 35. Was man wissen sollte • ZF schlägt eine Verzeichnisstruktur vor: application/ beinhaltet die eigtl. Anwendung library/ beinhaltet das ZF und eigene Libraries public/ beinhaltet die boostrap datei und die www-resourcen • … wem das nicht passt, kann es aber ändern (alles).
  36. 36. ZF MVC Features • Handelt alle eingehenden Anfragen und gibt die endgültige Ausgabe aus • Router mapped URL und/oder Anfragen zu den entsprechenden Action Controller und Methoden • Request Objekt beinhaltet die Anfrage Umgebung • Response Objekt aggregiert die Antwort(en) und die Headers • …
  37. 37. Zend_Config • Statische Konfiguration über INI XML arrays • Setzt typischerweiße die App.-Umgebung: Produktion Entwicklung Pfade Datenbankzugriff …?
  38. 38. Zend_Config • Abfrage nach Bereich
  39. 39. Zend_Config • Verberbung pro Section
  40. 40. Zend_Registry • Statische Platz zum Aufbewahrung von Objekten und Key/Value Paaren für globalen Zugriff
  41. 41. Part V Ausblick
  42. 42. Was kommt demnächst? • Zend_Tool Codegenerator • Apache Conf • PHP • SQL • ... Text CLI-Interface zum Ändern/Erstellen eines ZF Projektes. • API um vollautomatisiert Controller, Actions etc zu generieren • Zend_Ldap Einfacher Abfrage von Daten LDAP CRUD Zugriff auf Daten LDIF Generator/Parser
  43. 43. Proposals • Proposal Home 52 neue Vorschläge (unfertig) 46 fertige Vorschläge 35 neue Komponenten im Beta Status … http://framework.zend.com/wiki/display/ZFPROP/Home
  44. 44. Danke! Mehr über das Zend Framework: http://framework.zend.com

×