PHP UG Karlsruhe - Zend Framework Introduction
Upcoming SlideShare
Loading in...5
×

Like this? Share it with your network

Share

PHP UG Karlsruhe - Zend Framework Introduction

  • 6,545 views
Uploaded on

Einführung in das Zend Framework

Einführung in das Zend Framework

More in: Education
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
No Downloads

Views

Total Views
6,545
On Slideshare
6,516
From Embeds
29
Number of Embeds
4

Actions

Shares
Downloads
29
Comments
0
Likes
3

Embeds 29

http://www.stefanheitmann.eu 13
http://www.slideshare.net 13
http://www.phpug-karlsruhe.de 2
https://xingmodules.com 1

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide
  • <br /> <br />
  • <br /> <br /> <br />
  • <br /> <br /> <br />
  • <br /> <br /> <br />
  • <br /> <br /> <br />
  • <br /> <br /> <br />
  • <br /> <br /> <br />
  • <br /> <br /> <br />
  • <br /> <br /> <br />
  • <br /> <br /> <br />
  • <br /> <br /> <br />
  • <br /> <br /> <br />
  • <br /> <br /> <br />
  • <br /> <br /> <br />
  • <br /> <br /> <br />
  • <br /> <br /> <br />
  • <br /> <br /> <br />
  • <br /> <br /> <br />
  • <br /> <br /> <br />
  • <br /> <br /> <br />
  • <br /> <br /> <br />
  • <br /> <br /> <br />
  • <br /> <br /> <br />
  • <br /> <br /> <br />
  • <br /> <br /> <br />
  • <br /> <br /> <br />
  • <br /> <br /> <br />
  • <br /> <br /> <br />
  • <br /> <br /> <br />
  • <br /> <br /> <br />
  • <br /> <br /> <br />
  • <br /> <br /> <br />
  • <br /> <br /> <br />
  • <br /> <br /> <br />
  • <br /> <br /> <br />
  • <br /> <br /> <br />
  • <br /> <br /> <br />
  • <br /> <br /> <br />
  • <br /> <br /> <br />
  • <br /> <br /> <br />
  • <br /> <br /> <br />
  • <br /> <br /> <br />
  • <br /> <br /> <br />
  • <br /> <br /> <br />

Transcript

  • 1. Zend Framework Einführung 09. Dezember 2008 PHP UG Karlsruhe
  • 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. 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. Part I Frameworks?!
  • 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. 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. 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. 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. Part II Verschiedene Frameworks für PHP
  • 10. Kleine Auswahl
  • 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. welches soll ich nehmen? • Variiert je nach Verwendungszweck • Sorgfältig auswählen Community Support (kommerziell?) Funktionalität Dokumentation Aktivität
  • 13. Part III Einführung und Überblick in das Zend Framework
  • 14. Was ist das ZF? • It’s just another PHP Framework
  • 15. Nee, was ist das jetzt? • It’s a glue library
  • 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. 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. 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. Technologie Partner
  • 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. 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. 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. 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. 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. 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. 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. 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. Part IV Praktische Beispiele
  • 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. 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. … erstellen wir einen Controller …
  • 32. … dann noch ne view ... • Views mit Zend_View sind nur PHP
  • 33. … FrontController initialisieren ... • “Starte” die Applikation (index.php) • .htaccess
  • 34. Und wir haben ein Ergebnis! • Beispiel Ausgabe
  • 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. 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. Zend_Config • Statische Konfiguration über INI XML arrays • Setzt typischerweiße die App.-Umgebung: Produktion Entwicklung Pfade Datenbankzugriff …?
  • 38. Zend_Config • Abfrage nach Bereich
  • 39. Zend_Config • Verberbung pro Section
  • 40. Zend_Registry • Statische Platz zum Aufbewahrung von Objekten und Key/Value Paaren für globalen Zugriff
  • 41. Part V Ausblick
  • 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. 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. Danke! Mehr über das Zend Framework: http://framework.zend.com