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
Upcoming SlideShare
Loading in...5
×

PHP UG Karlsruhe - Zend Framework Introduction

3,761

Published on

Einführung in das Zend Framework

Published in: Education
0 Comments
3 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
3,761
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
30
Comments
0
Likes
3
Embeds 0
No embeds

No notes for slide



































































































































  • 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
    1. A particular slide catching your eye?

      Clipping is a handy way to collect important slides you want to go back to later.

    ×