29
Jean-Marie Renouard LightPath 2014©

MVC / Frameworks PHP

Embed Size (px)

DESCRIPTION

Présentation des frameworks et design MVC en PHP 5

Citation preview

Page 1: MVC / Frameworks PHP

Jean-Marie Renouard

LightPath 2014©

Page 2: MVC / Frameworks PHP

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

MVC

Zend Framework

Code Igniter

PEAR

PHPClasses

Autres frameworks

LightPath 2014© - http://www.jmrenouard.fr 3

Page 4: MVC / Frameworks PHP

LightPath 2014© - http://www.jmrenouard.fr 4

Page 5: MVC / Frameworks PHP

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

LightPath 2014© - http://www.jmrenouard.fr 6

Page 7: MVC / Frameworks PHP

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

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

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

LightPath 2014© - http://www.jmrenouard.fr 10

Page 11: MVC / Frameworks PHP

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

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

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

LightPath 2014© - http://www.jmrenouard.fr 14

Page 15: MVC / Frameworks PHP

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

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

Uniformité du code.

Très bon niveau de documentation.

grande communauté.

LightPath 2014© - http://www.jmrenouard.fr 17

Page 18: MVC / Frameworks PHP

LightPath 2014© - http://www.jmrenouard.fr 18

Page 19: MVC / Frameworks PHP

Infrastructure de diffusion de classes

Taille de code : 16 millions de ligne

LightPath 2014© - http://www.jmrenouard.fr 19

Page 20: MVC / Frameworks PHP

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

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

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

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

LightPath 2014© - http://www.jmrenouard.fr 24

Page 25: MVC / Frameworks PHP

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

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

LightPath 2014© - http://www.jmrenouard.fr 27

Page 28: MVC / Frameworks PHP

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

LightPath: ◦ Société de conseil et d’ingénierie

◦ Formations, Conseil, Audit et mise en œuvre

[email protected]

Jean-Marie RENOUARD ◦ [email protected]

◦ Twitter: @jmrenouard

◦ http://www.jmrenouard.fr

LightPath 2014© - http://www.jmrenouard.fr 29