MVC / Frameworks PHP
-
Upload
jean-marie-renouard -
Category
Engineering
-
view
268 -
download
0
description
Transcript of MVC / Frameworks PHP
![Page 1: MVC / Frameworks PHP](https://reader034.fdocument.pub/reader034/viewer/2022051016/5596280b1a28ab865a8b46e6/html5/thumbnails/1.jpg)
Jean-Marie Renouard
LightPath 2014©
![Page 2: MVC / Frameworks PHP](https://reader034.fdocument.pub/reader034/viewer/2022051016/5596280b1a28ab865a8b46e6/html5/thumbnails/2.jpg)
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
![Page 3: MVC / Frameworks PHP](https://reader034.fdocument.pub/reader034/viewer/2022051016/5596280b1a28ab865a8b46e6/html5/thumbnails/3.jpg)
MVC
Zend Framework
Code Igniter
PEAR
PHPClasses
Autres frameworks
LightPath 2014© - http://www.jmrenouard.fr 3
![Page 4: MVC / Frameworks PHP](https://reader034.fdocument.pub/reader034/viewer/2022051016/5596280b1a28ab865a8b46e6/html5/thumbnails/4.jpg)
LightPath 2014© - http://www.jmrenouard.fr 4
![Page 5: MVC / Frameworks PHP](https://reader034.fdocument.pub/reader034/viewer/2022051016/5596280b1a28ab865a8b46e6/html5/thumbnails/5.jpg)
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
![Page 6: MVC / Frameworks PHP](https://reader034.fdocument.pub/reader034/viewer/2022051016/5596280b1a28ab865a8b46e6/html5/thumbnails/6.jpg)
LightPath 2014© - http://www.jmrenouard.fr 6
![Page 7: MVC / Frameworks PHP](https://reader034.fdocument.pub/reader034/viewer/2022051016/5596280b1a28ab865a8b46e6/html5/thumbnails/7.jpg)
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
![Page 8: MVC / Frameworks PHP](https://reader034.fdocument.pub/reader034/viewer/2022051016/5596280b1a28ab865a8b46e6/html5/thumbnails/8.jpg)
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
![Page 9: MVC / Frameworks PHP](https://reader034.fdocument.pub/reader034/viewer/2022051016/5596280b1a28ab865a8b46e6/html5/thumbnails/9.jpg)
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
![Page 10: MVC / Frameworks PHP](https://reader034.fdocument.pub/reader034/viewer/2022051016/5596280b1a28ab865a8b46e6/html5/thumbnails/10.jpg)
LightPath 2014© - http://www.jmrenouard.fr 10
![Page 11: MVC / Frameworks PHP](https://reader034.fdocument.pub/reader034/viewer/2022051016/5596280b1a28ab865a8b46e6/html5/thumbnails/11.jpg)
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
![Page 12: MVC / Frameworks PHP](https://reader034.fdocument.pub/reader034/viewer/2022051016/5596280b1a28ab865a8b46e6/html5/thumbnails/12.jpg)
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
![Page 13: MVC / Frameworks PHP](https://reader034.fdocument.pub/reader034/viewer/2022051016/5596280b1a28ab865a8b46e6/html5/thumbnails/13.jpg)
Uniformité du code.
Très bon niveau de documentation.
Large communauté.
Coordination pour une API consistante
LightPath 2014© - http://www.jmrenouard.fr 13
![Page 14: MVC / Frameworks PHP](https://reader034.fdocument.pub/reader034/viewer/2022051016/5596280b1a28ab865a8b46e6/html5/thumbnails/14.jpg)
LightPath 2014© - http://www.jmrenouard.fr 14
![Page 15: MVC / Frameworks PHP](https://reader034.fdocument.pub/reader034/viewer/2022051016/5596280b1a28ab865a8b46e6/html5/thumbnails/15.jpg)
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
![Page 16: MVC / Frameworks PHP](https://reader034.fdocument.pub/reader034/viewer/2022051016/5596280b1a28ab865a8b46e6/html5/thumbnails/16.jpg)
30 classes
20 classes utilitaires
Simple à comprendre
Simple à mettre en oeuvre
Jeu de brique à assembler !
LightPath 2014© - http://www.jmrenouard.fr 16
![Page 17: MVC / Frameworks PHP](https://reader034.fdocument.pub/reader034/viewer/2022051016/5596280b1a28ab865a8b46e6/html5/thumbnails/17.jpg)
Uniformité du code.
Très bon niveau de documentation.
grande communauté.
LightPath 2014© - http://www.jmrenouard.fr 17
![Page 18: MVC / Frameworks PHP](https://reader034.fdocument.pub/reader034/viewer/2022051016/5596280b1a28ab865a8b46e6/html5/thumbnails/18.jpg)
LightPath 2014© - http://www.jmrenouard.fr 18
![Page 19: MVC / Frameworks PHP](https://reader034.fdocument.pub/reader034/viewer/2022051016/5596280b1a28ab865a8b46e6/html5/thumbnails/19.jpg)
Infrastructure de diffusion de classes
Taille de code : 16 millions de ligne
LightPath 2014© - http://www.jmrenouard.fr 19
![Page 20: MVC / Frameworks PHP](https://reader034.fdocument.pub/reader034/viewer/2022051016/5596280b1a28ab865a8b46e6/html5/thumbnails/20.jpg)
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
![Page 21: MVC / Frameworks PHP](https://reader034.fdocument.pub/reader034/viewer/2022051016/5596280b1a28ab865a8b46e6/html5/thumbnails/21.jpg)
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
![Page 22: MVC / Frameworks PHP](https://reader034.fdocument.pub/reader034/viewer/2022051016/5596280b1a28ab865a8b46e6/html5/thumbnails/22.jpg)
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
![Page 23: MVC / Frameworks PHP](https://reader034.fdocument.pub/reader034/viewer/2022051016/5596280b1a28ab865a8b46e6/html5/thumbnails/23.jpg)
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
![Page 24: MVC / Frameworks PHP](https://reader034.fdocument.pub/reader034/viewer/2022051016/5596280b1a28ab865a8b46e6/html5/thumbnails/24.jpg)
LightPath 2014© - http://www.jmrenouard.fr 24
![Page 25: MVC / Frameworks PHP](https://reader034.fdocument.pub/reader034/viewer/2022051016/5596280b1a28ab865a8b46e6/html5/thumbnails/25.jpg)
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
![Page 26: MVC / Frameworks PHP](https://reader034.fdocument.pub/reader034/viewer/2022051016/5596280b1a28ab865a8b46e6/html5/thumbnails/26.jpg)
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
![Page 27: MVC / Frameworks PHP](https://reader034.fdocument.pub/reader034/viewer/2022051016/5596280b1a28ab865a8b46e6/html5/thumbnails/27.jpg)
LightPath 2014© - http://www.jmrenouard.fr 27
![Page 28: MVC / Frameworks PHP](https://reader034.fdocument.pub/reader034/viewer/2022051016/5596280b1a28ab865a8b46e6/html5/thumbnails/28.jpg)
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
![Page 29: MVC / Frameworks PHP](https://reader034.fdocument.pub/reader034/viewer/2022051016/5596280b1a28ab865a8b46e6/html5/thumbnails/29.jpg)
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