zend framework - simplicity meet power

20
ZEND FRAMEWORK Simplicity, Meet Power

Upload: altaide

Post on 05-Dec-2014

4.517 views

Category:

Technology


3 download

DESCRIPTION

Présentation de la technologie Zend par Nicolas Fabre du group Reflect aux Altaïde Dev' Drink, du 24 avril 2008 à la Cantine

TRANSCRIPT

Page 1: Zend Framework - Simplicity Meet Power

ZEND FRAMEWORKSimplicity, Meet Power

Page 2: Zend Framework - Simplicity Meet Power

Zend Framework :

• Introduction au Zend Framework

• Les composants du framework

• Exemples d’applications

Page 3: Zend Framework - Simplicity Meet Power

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

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

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

Zend Framework : L’Architecture

Core

Registry

Config

Log

Filter

AuthMail ACL

Cache Session ...

Internationalization

Locale

Date

Translate

...

Web Services

Feed

RSS

ATOM

Google

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

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

• 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

• 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

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

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

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

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

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

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

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

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

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

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

Zend Framework

QUESTIONS !