Le Zend Framework s'est rapidement imposé comme un framework majeur de l'écosystème PHP. Sa prise en main peut sembler parfois intimidante, et pourtant démarrer un projet dans les règles de l'art ne prend que quelques minutes.
Cette présentation vous permettra de vous familiariser avec les concepts clé de Zend Framework, et vous guidera pour vos tous premiers pas avec cet excellent framework !
2. { A propos de … moi
●Développeur et architecte PHP depuis 1999
●Certifié ZCE pour PHP5 et Zend Framework
●Journaliste informatique et blogueur
●Responsable des services professionnels pour
VA Consulting (Luxembourg)
●Vice-secrétaire de l'AFUP
3. {Une (très) brève histoire de ZF
● L'impulsion du projet et l'encadrement sont
fournis par Zend Technologies
● Démarré en 2005, la version 1.0 du projet sort
en Juin 2007
● Les versions principales suivantes ont été la
1.5 (ajout des Forms et Layouts) et la 1.8
(apparition de Zend_Application)
● « There's a fork in the road » : les branches 1.x
et 2.x vont coexister
4. { Principales caractéristiques
● Framework 100% objet
● Aucune variable globale
● Aucune fonction globale
● Aucune constante globale
● Application de nombreux design patterns
– MVC + Front Controller
– Adapters
– Factories
– ...
5. { Principales caractéristiques
● Exploitation maximum de PHP 5
● Pas de compatibilité ascendante
– PHP >= 5.1.4 jusqu'à la version 1.7
– PHP >= 5.2.4 depuis
– NOTE PHP < 5.3 dans les deux cas !
● Classes abstraites
● Interfaces
● SPL
● Méthodes magiques
7. { Concepts clés
● Couplage faible
● Utilisation autonome des composants
● « Use-at-will »
● Extrême souplesse
● Classes abstraites et interfaces (injection de
dépendances)
● Mécanismes de chargement automatiques
« intelligents »
● Personnalisation « chirurgicale »
8. { Concepts clés
● Model – View – Controller
● Convient à la majorité des projets, sites comme
applications
● Standard de facto de l'industrie du développement
web
● Dissociation de la logique métier et de la
présentation
9. { En pratique
● zf.sh (ou .bat) permet de générer la structure
du projet et des éléments isolés
● zf.sh create project afup
● Les dossiers principaux
● application
● public
● tests
● library
● docs
10. {Configuration et initialisation
● Le fichier index.php traite TOUTES les requêtes
entrantes, et permet de :
● définir l'environnement
● charger la configuration
● démarrer le framework
11. { Controller / View
● Par défaut, à chaque action sont associés :
● Une méthode de contrôleur
● Un script de vue
12. { Du contrôleur à la vue...
● Assigner une valeur à la vue :
● $this->view->attribut = 'valeur';
ou
● $this->view->assign('attribut', 'view');
● Récupérer la variable de vue :
● echo $this->attribut;
13. { La gestion d'erreurs
● Un plugin redirige par défaut toutes les
exceptions vers error/error
● Les données d'erreurs sont passées comme un
paramètre de requête ('error_handler')
● Une vue associée permet d'en afficher (ou pas) les
détails