Download - MVC / Frameworks PHP
Jean-Marie Renouard
LightPath 2014©
Le logo PHP est du domaine public http://commons.wikimedia.org/wiki/File:PHP-logo.svg
Ce document est licencié sous licence ◦ Attribution-NonCommercial-ShareAlike
◦ CC BY-NC-SA
Plus de détails: http://creativecommons.org/licenses/by-nc-sa/3.0/fr/
LightPath 2014© - http://www.jmrenouard.fr 2
MVC
Zend Framework
Code Igniter
PEAR
PHPClasses
Autres frameworks
LightPath 2014© - http://www.jmrenouard.fr 3
LightPath 2014© - http://www.jmrenouard.fr 4
Principe de découpage d’application: ◦ M : Modèle ◦ V : Vue ◦ C: Contrôle
Paradigme directeur: ◦ Séparation du « métier » ou « fonctionnel » ◦ Séparation de la présentation des données
Adapté à la logique de publication multicanaux.
LightPath 2014© - http://www.jmrenouard.fr 5
LightPath 2014© - http://www.jmrenouard.fr 6
Pièce centrale
Récupération des requêtes client
Appel des bons modèles et services
Appel de la couche Vue avec les données collectées
LightPath 2014© - http://www.jmrenouard.fr 7
En charge de la mise en forme.
Peut-être spécifique par type de client
Préservation des services et des rendus.
LightPath 2014© - http://www.jmrenouard.fr 8
Conteneur du « métier » de l’application.
Indépendance de la présentation.
Cœur de l’application
Point d’entrée vers les données persistantes.
LightPath 2014© - http://www.jmrenouard.fr 9
LightPath 2014© - http://www.jmrenouard.fr 10
Une implémentation d’un MVC
Utilitaires en ligne de commande
Intégration complète au Zend Studio
Taille de code : 3,5 millions lignes
LightPath 2014© - http://www.jmrenouard.fr 11
82 APIs différentes ◦ Aide à la gestion des données
◦ Aide à la création de formulaire
◦ Aide à l’interrogation de données
◦ Aide à la manipulation de données
Jeu de brique à assembler !
LightPath 2014© - http://www.jmrenouard.fr 12
Uniformité du code.
Très bon niveau de documentation.
Large communauté.
Coordination pour une API consistante
LightPath 2014© - http://www.jmrenouard.fr 13
LightPath 2014© - http://www.jmrenouard.fr 14
Une implémentation d’un MVC
Pas de ligne de commande
Simple à mettre en œuvre
Taille de code : 80000 lignes
LightPath 2014© - http://www.jmrenouard.fr 15
30 classes
20 classes utilitaires
Simple à comprendre
Simple à mettre en oeuvre
Jeu de brique à assembler !
LightPath 2014© - http://www.jmrenouard.fr 16
Uniformité du code.
Très bon niveau de documentation.
grande communauté.
LightPath 2014© - http://www.jmrenouard.fr 17
LightPath 2014© - http://www.jmrenouard.fr 18
Infrastructure de diffusion de classes
Taille de code : 16 millions de ligne
LightPath 2014© - http://www.jmrenouard.fr 19
Projet de mise à disposition de composant
Intégration à PHP
2 utilitaires ligne de commande : ◦ pear
◦ pecl
PEAR: Pures classes PHP
PECL: Classe PHP avec du code natif C
LightPath 2014© - http://www.jmrenouard.fr 20
Extensions PHP annexes
Les anciennes APIs PHP y sont maintenues.
265 packages ◦ APC: Cache de code PHP
◦ Memcache: support du serveur Mencache
◦ …
LightPath 2014© - http://www.jmrenouard.fr 21
Classes PHP annexes
569 packages de classes ◦ XML_RPC: support des appels XML RPC
◦ Archive_Tar: support du format tar
◦ Mail: support avancée des emails
◦ DB/MDB2: support des bases de données
◦ …
LightPath 2014© - http://www.jmrenouard.fr 22
Code de bonne qualité
Procédure de validation du projet
Concurrence de fonctionnalités possibles
Projet communautaire
Documentation parfois légère
Maintenance faible de certains composants
LightPath 2014© - http://www.jmrenouard.fr 23
LightPath 2014© - http://www.jmrenouard.fr 24
Infrastructure de diffusion de classes
Projet de mise à disposition de composant
Pas d’utilitaire d’intégration
http://www.phpclasses.org
LightPath 2014© - http://www.jmrenouard.fr 25
Code de qualité aléatoire
Défaut de maintenance sur certaines classes
Documentation parfois légère
Qualité par vote des utilisateurs
Plusieurs milliers de classes !
LightPath 2014© - http://www.jmrenouard.fr 26
LightPath 2014© - http://www.jmrenouard.fr 27
ezComponents: ◦ http://ezcomponents.org
CakePHP: ◦ un autre framework MVC ◦ http://cakephp.org ◦ 442 milliers de ligne
Smarty ◦ Moteur de rendu officiel de PHP ◦ http://smarty.php.net ◦ 66000 ligne de code
Symphony ◦ Un autre framework MVC ◦ 20000 lignes de code
LightPath 2014© - http://www.jmrenouard.fr 28
LightPath: ◦ Société de conseil et d’ingénierie
◦ Formations, Conseil, Audit et mise en œuvre
Jean-Marie RENOUARD ◦ [email protected]
◦ Twitter: @jmrenouard
◦ http://www.jmrenouard.fr
LightPath 2014© - http://www.jmrenouard.fr 29