Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

PHP UG Karlsruhe - Zend Framework Introduction

4,272 views

Published on

Einführung in das Zend Framework

Published in: Education
  • Be the first to comment

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

×