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
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
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
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
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
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
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
…?
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