zend framework - simplicity meet power
DESCRIPTION
Présentation de la technologie Zend par Nicolas Fabre du group Reflect aux Altaïde Dev' Drink, du 24 avril 2008 à la CantineTRANSCRIPT
![Page 1: Zend Framework - Simplicity Meet Power](https://reader034.vdocument.in/reader034/viewer/2022051610/548196f7b07959570c8b4570/html5/thumbnails/1.jpg)
ZEND FRAMEWORKSimplicity, Meet Power
![Page 2: Zend Framework - Simplicity Meet Power](https://reader034.vdocument.in/reader034/viewer/2022051610/548196f7b07959570c8b4570/html5/thumbnails/2.jpg)
Zend Framework :
• Introduction au Zend Framework
• Les composants du framework
• Exemples d’applications
![Page 3: Zend Framework - Simplicity Meet Power](https://reader034.vdocument.in/reader034/viewer/2022051610/548196f7b07959570c8b4570/html5/thumbnails/3.jpg)
Zend Framework
• Qui ?• Nicolas Fabre <[email protected]>
• Quoi ?• Web Developer Innovation• Zend PHP5 Certified Engineer
• Ou ?• groupe Reflect / Emakina Group
![Page 4: Zend Framework - Simplicity Meet Power](https://reader034.vdocument.in/reader034/viewer/2022051610/548196f7b07959570c8b4570/html5/thumbnails/4.jpg)
Zend Framework : c’est quoi ?
• PHP 5
• Open Source
• Code Libre• Libre de contribuer et de distribuer
• Découpage en librairies
• Ressources
• Qualités & Tests • PHPUnit
![Page 5: Zend Framework - Simplicity Meet Power](https://reader034.vdocument.in/reader034/viewer/2022051610/548196f7b07959570c8b4570/html5/thumbnails/5.jpg)
ZF : La philosophie
• Simplicité !
• Solutions faciles pour 80% des fonctionnalités le plus souvent utilisés dans une application Web.
• Extensibilité pour résoudre les 20% restants
• Pas de fichier de configuration complexe
• Bonnes pratiques
• Indépendant de l’architecture• Orienté objet• Design Pattern• Conçut pour l’extensibilité
![Page 6: Zend Framework - Simplicity Meet Power](https://reader034.vdocument.in/reader034/viewer/2022051610/548196f7b07959570c8b4570/html5/thumbnails/6.jpg)
Zend Framework : L’Architecture
Core
Registry
Config
Log
Filter
AuthMail ACL
Cache Session ...
Internationalization
Locale
Date
Translate
...
Web Services
Feed
RSS
ATOM
Client
XML-RPC
REST
HTTTP
Server
XML-RPC
REST
SOAP
Services
Amazon
Flickr
Akismet
StrikeIron
Yahoo !
...
Data
...Search
DbJSON Controller
Rewrite Router
View
Form
Layout
...
MVC
![Page 7: Zend Framework - Simplicity Meet Power](https://reader034.vdocument.in/reader034/viewer/2022051610/548196f7b07959570c8b4570/html5/thumbnails/7.jpg)
ZF : Composants MVC
• Le coeur de l’application
• MVC• Model : Données, Traitements lourds
• View : Interface Utilisateur
• Controller : Traitement des requêtes
• Solution simple en “général”
• Flexible et extensible• Options avancés
Controller
View Model
![Page 8: Zend Framework - Simplicity Meet Power](https://reader034.vdocument.in/reader034/viewer/2022051610/548196f7b07959570c8b4570/html5/thumbnails/8.jpg)
• Le Front Controller route les requêtes vers les controllers
• Le routage est un mapping de l’url
• http://www.appzend.com/controller/action/param1/value1/...
• controller : nom de la classe du Controller
• action : nom de la méthode du Controller
• key/value : paires passées à l’Action
ZF : MVC fonctionnement des routes
Front ControllerBOOTSTRAPindex.php
Controlleraction()action()
Requête HTTP
Controlleraction()action()
![Page 9: Zend Framework - Simplicity Meet Power](https://reader034.vdocument.in/reader034/viewer/2022051610/548196f7b07959570c8b4570/html5/thumbnails/9.jpg)
• Modules• regroupe les contrôleurs
• offre un niveau de hiérarchie en plus dans les urls
• http://www.appzend.com/module/controller/action/param1/value1/...
• Route configurable• Pas limité au format “module/controller/action/param”
• Route statique• http://www.appzend.com/mon-compte/
• Route regex• http://www.appzend.com/mes-archives/(\d+)
ZF : MVC fonctionnement avancés
![Page 10: Zend Framework - Simplicity Meet Power](https://reader034.vdocument.in/reader034/viewer/2022051610/548196f7b07959570c8b4570/html5/thumbnails/10.jpg)
ZF : MVC / Zend_Controller
• Actions Controllers
• héritage de Zend_Controller_Action
• Fin du nom de classe en ‘Controller’• IndexController
• Underscore indique une séparation• Admin_IndexController => Admin/Index.php
• Règle différente avec les modules
• CamelCase géré• /mon-compte/ => monCompteController
• Controller Action
• méthode public et fin du nom en ‘Action’• public function editAction()
• CamelCase géré
![Page 11: Zend Framework - Simplicity Meet Power](https://reader034.vdocument.in/reader034/viewer/2022051610/548196f7b07959570c8b4570/html5/thumbnails/11.jpg)
ZF : MVC / Zend_View
• séparation du rendu et du traitement
• n’est pas un moteur de Template
• Zend_Layout
• Helpers• facilite la construction de formulaire HTML• Extensible
• Zend_View Enhancement• Concept DRY (Don’t Repeat Yourself)
• Action() facilite le dispatch vers une Action d’un Controller
![Page 12: Zend Framework - Simplicity Meet Power](https://reader034.vdocument.in/reader034/viewer/2022051610/548196f7b07959570c8b4570/html5/thumbnails/12.jpg)
ZF : Zend_Layout
• design Pattern “Two Step View” (vue en 2 temps)• http://martinfowler.com/eaaCatalog/twoStepView.html
• Structuration de la page
• Vues dans des Vues• Appel de plusieurs actions
• Ajax Support• Helper Autocomplete
• Librairies Dojo & Scriptaculous
Album
artist: Artist
Screen
artist: Field
Stage 1
renderAlbumrenderArtist
Stage 2
rendeScreenrenderField
read
create
read
HTML
create
![Page 13: Zend Framework - Simplicity Meet Power](https://reader034.vdocument.in/reader034/viewer/2022051610/548196f7b07959570c8b4570/html5/thumbnails/13.jpg)
ZF : Zend_Form
• I18N• utilisation de Zend_Translate
• Validation complète ou partiel du formulaire
• Filtre & Validation par élément
• Totalement personnalisable
• Elements
• Decorateurs
![Page 14: Zend Framework - Simplicity Meet Power](https://reader034.vdocument.in/reader034/viewer/2022051610/548196f7b07959570c8b4570/html5/thumbnails/14.jpg)
ZF : Contexte
• Composant Zend_Controller
• ContextSwitch Helper d’action
• Possibilité de définir une vue différente• Ajout de contexte en fonction d’une action
• http:://.../controller/action/?format=xml
• Ajout d’un suffix en fonction d’un format• view/list.xml.phtml
• Contexte personnalisable
• AjaxContext Helper d’action
• Héritage de ContextSwitch• Facilite les retours Ajax
![Page 15: Zend Framework - Simplicity Meet Power](https://reader034.vdocument.in/reader034/viewer/2022051610/548196f7b07959570c8b4570/html5/thumbnails/15.jpg)
ZF : Web Services
• En ‘constante’ augmentation
• Composants Zend_Service_*
• Zend_Service_Flickr
• Zend_Service_SlideShare
• Zend_Service_Yahoo
• Zend_GData
• ...
![Page 16: Zend Framework - Simplicity Meet Power](https://reader034.vdocument.in/reader034/viewer/2022051610/548196f7b07959570c8b4570/html5/thumbnails/16.jpg)
ZF : Autres Composants
• Zend_Cache
• Factory de système de cache
• Zend_Db
• Abstraction de BDD
• Zend_Db_Table ORM
• Zend_Db_Select Création de requête
• Zend_Date
• Manipulation de date
• Zend_Feed
• Manipulation de flux RSS et ATOM
• ...
![Page 17: Zend Framework - Simplicity Meet Power](https://reader034.vdocument.in/reader034/viewer/2022051610/548196f7b07959570c8b4570/html5/thumbnails/17.jpg)
ZF : Ressources
• Site officiel : http://framework.zend.com
• Wiki du Framework : http://framework.zend.com/wiki/display/ZFDEV/Home
• Webminars Site Zend : http://www.zend.com/fr/resources/webminars/framework
• Forum FR : http://z-f.fr
• Blog de Rob Allen (en) : http://akrabat.com
• Blog de Julien Pauli : http://blog.developpez.com/?blog=126
• ...
![Page 18: Zend Framework - Simplicity Meet Power](https://reader034.vdocument.in/reader034/viewer/2022051610/548196f7b07959570c8b4570/html5/thumbnails/18.jpg)
ZF : Quelques applications
• La boite a pizza• http://www.laboiteapizza.com
• La française des jeux• http://www.lafrancaisedesjeux.com
• PokerRoom• http://www.pokerroom.com
• Top Santé• http://www.topsante.com
• Vnunet• http://www.vnunet.fr
• blueKiwi• http://www.bluekiwi-software.com
• bien d’autres...
![Page 19: Zend Framework - Simplicity Meet Power](https://reader034.vdocument.in/reader034/viewer/2022051610/548196f7b07959570c8b4570/html5/thumbnails/19.jpg)
ZF : Magento
• Solution eCommerce Open Source
• Philosophie identique au Zend Framework
• Fonctionnalités rajoutés
• Layout XML
• gestion de formulaire• système de vue remplacé par un système de block
• Extensible
• Utilisation du design Pattern Observer• surcharge d’environ 95% des fonctionnalités
![Page 20: Zend Framework - Simplicity Meet Power](https://reader034.vdocument.in/reader034/viewer/2022051610/548196f7b07959570c8b4570/html5/thumbnails/20.jpg)
Zend Framework
QUESTIONS !