SlideShare une entreprise Scribd logo
1  sur  29
Télécharger pour lire hors ligne
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. 
Coeur 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 oeuvre 
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 oeuvre 
◦jmrenouard@lightpath.fr 
Jean-Marie RENOUARD 
◦jmrenouard@gmail.com 
◦Twitter: @jmrenouard 
◦http://www.jmrenouard.fr 
LightPath 2014© - http://www.jmrenouard.fr 29

Contenu connexe

Tendances

Soutenance Zend Framework vs Symfony
Soutenance Zend Framework vs SymfonySoutenance Zend Framework vs Symfony
Soutenance Zend Framework vs Symfony
Vincent Composieux
 
PHP5 - POO
PHP5 - POOPHP5 - POO
PHP5 - POO
mazenovi
 

Tendances (20)

Gestion de formulaires en PHP
Gestion de formulaires en PHPGestion de formulaires en PHP
Gestion de formulaires en PHP
 
Email et PHP5
Email et PHP5Email et PHP5
Email et PHP5
 
Javascript et JQuery
Javascript et JQueryJavascript et JQuery
Javascript et JQuery
 
Sécurité et Quaité de code PHP
Sécurité et Quaité de code PHPSécurité et Quaité de code PHP
Sécurité et Quaité de code PHP
 
Le client FTP de PHP5
Le client FTP de PHP5Le client FTP de PHP5
Le client FTP de PHP5
 
SQL et MySQL
SQL et MySQLSQL et MySQL
SQL et MySQL
 
Les structures de données PHP5
Les structures de données PHP5Les structures de données PHP5
Les structures de données PHP5
 
Php & My Sql
Php & My SqlPhp & My Sql
Php & My Sql
 
Formation PHP avancé - Cake PHP
Formation PHP avancé - Cake PHPFormation PHP avancé - Cake PHP
Formation PHP avancé - Cake PHP
 
Soutenance Zend Framework vs Symfony
Soutenance Zend Framework vs SymfonySoutenance Zend Framework vs Symfony
Soutenance Zend Framework vs Symfony
 
php2 : formulaire-session-PDO
php2 : formulaire-session-PDOphp2 : formulaire-session-PDO
php2 : formulaire-session-PDO
 
Beautiful CSS : Structurer, documenter, maintenir
Beautiful CSS : Structurer, documenter, maintenirBeautiful CSS : Structurer, documenter, maintenir
Beautiful CSS : Structurer, documenter, maintenir
 
Php 2 - Approfondissement MySQL, PDO et MVC
Php 2 - Approfondissement MySQL, PDO et MVCPhp 2 - Approfondissement MySQL, PDO et MVC
Php 2 - Approfondissement MySQL, PDO et MVC
 
Cours php & Mysql - 5éme partie
Cours php & Mysql - 5éme partieCours php & Mysql - 5éme partie
Cours php & Mysql - 5éme partie
 
Cours php & Mysql - 3éme partie
Cours php & Mysql - 3éme partieCours php & Mysql - 3éme partie
Cours php & Mysql - 3éme partie
 
Introduction à CakePHP
Introduction à CakePHPIntroduction à CakePHP
Introduction à CakePHP
 
Formation PHP
Formation PHPFormation PHP
Formation PHP
 
Php
PhpPhp
Php
 
Pdo
PdoPdo
Pdo
 
PHP5 - POO
PHP5 - POOPHP5 - POO
PHP5 - POO
 

En vedette

rapport_stage_issame
rapport_stage_issamerapport_stage_issame
rapport_stage_issame
AMAL Issame
 
Introduction au webmapping au-dela de google maps
Introduction au webmapping  au-dela de google mapsIntroduction au webmapping  au-dela de google maps
Introduction au webmapping au-dela de google maps
VisionGÉOMATIQUE2012
 
Presentation Spring, Spring MVC
Presentation Spring, Spring MVCPresentation Spring, Spring MVC
Presentation Spring, Spring MVC
Nathaniel Richand
 
Click and deploy - Continuous delivery avec Zend Server et Jenknins
Click and deploy - Continuous delivery avec Zend Server et JenkninsClick and deploy - Continuous delivery avec Zend Server et Jenknins
Click and deploy - Continuous delivery avec Zend Server et Jenknins
Sophie Beaupuis
 

En vedette (14)

Manuel de sécurisation d'un serveur Linux
Manuel de sécurisation d'un serveur LinuxManuel de sécurisation d'un serveur Linux
Manuel de sécurisation d'un serveur Linux
 
Ssh cookbook
Ssh cookbookSsh cookbook
Ssh cookbook
 
Structure de données en PHP
Structure de données en PHPStructure de données en PHP
Structure de données en PHP
 
Mvc (5)
Mvc (5)Mvc (5)
Mvc (5)
 
La sécurité et php
La sécurité et phpLa sécurité et php
La sécurité et php
 
Solution pour un Réseau Social d'Entreprise (RSE)
Solution pour un Réseau Social d'Entreprise (RSE)Solution pour un Réseau Social d'Entreprise (RSE)
Solution pour un Réseau Social d'Entreprise (RSE)
 
rapport_stage_issame
rapport_stage_issamerapport_stage_issame
rapport_stage_issame
 
Introduction au webmapping au-dela de google maps
Introduction au webmapping  au-dela de google mapsIntroduction au webmapping  au-dela de google maps
Introduction au webmapping au-dela de google maps
 
Présentation de Node.js
Présentation de Node.jsPrésentation de Node.js
Présentation de Node.js
 
Presentation Spring, Spring MVC
Presentation Spring, Spring MVCPresentation Spring, Spring MVC
Presentation Spring, Spring MVC
 
Zf2++ Quelques idées sur l'avenir proche de ZF2
Zf2++ Quelques idées sur l'avenir proche de ZF2Zf2++ Quelques idées sur l'avenir proche de ZF2
Zf2++ Quelques idées sur l'avenir proche de ZF2
 
Click and deploy - Continuous delivery avec Zend Server et Jenknins
Click and deploy - Continuous delivery avec Zend Server et JenkninsClick and deploy - Continuous delivery avec Zend Server et Jenknins
Click and deploy - Continuous delivery avec Zend Server et Jenknins
 
How Much Further Will Internet Stocks Fall? (Share Price Performance)
How Much Further Will Internet Stocks Fall? (Share Price Performance)How Much Further Will Internet Stocks Fall? (Share Price Performance)
How Much Further Will Internet Stocks Fall? (Share Price Performance)
 
REX Devops Docker
REX Devops DockerREX Devops Docker
REX Devops Docker
 

Similaire à MVC / Frameworks PHP

Déploiement d’applications
Déploiement d’applicationsDéploiement d’applications
Déploiement d’applications
Mohammed Jaafar
 
We421 g formation-administration-of-ibm-websphere-datapower-soa-appliances-v5
We421 g formation-administration-of-ibm-websphere-datapower-soa-appliances-v5We421 g formation-administration-of-ibm-websphere-datapower-soa-appliances-v5
We421 g formation-administration-of-ibm-websphere-datapower-soa-appliances-v5
CERTyou Formation
 
Conférence #nwx2014 - Maxime Mauchaussée - Partager du code maintenable et év...
Conférence #nwx2014 - Maxime Mauchaussée - Partager du code maintenable et év...Conférence #nwx2014 - Maxime Mauchaussée - Partager du code maintenable et év...
Conférence #nwx2014 - Maxime Mauchaussée - Partager du code maintenable et év...
Normandie Web Xperts
 
Cyjava formation-java-programmation-maitriser-les-fondamentaux-de-la-programm...
Cyjava formation-java-programmation-maitriser-les-fondamentaux-de-la-programm...Cyjava formation-java-programmation-maitriser-les-fondamentaux-de-la-programm...
Cyjava formation-java-programmation-maitriser-les-fondamentaux-de-la-programm...
CERTyou Formation
 
M10961 formation-automatiser-l-administration-windows-avec-microsoft-powershe...
M10961 formation-automatiser-l-administration-windows-avec-microsoft-powershe...M10961 formation-automatiser-l-administration-windows-avec-microsoft-powershe...
M10961 formation-automatiser-l-administration-windows-avec-microsoft-powershe...
CERTyou Formation
 
Alphorm.com Support de la Formation Red Hat Administrateur de Virtualization ...
Alphorm.com Support de la Formation Red Hat Administrateur de Virtualization ...Alphorm.com Support de la Formation Red Hat Administrateur de Virtualization ...
Alphorm.com Support de la Formation Red Hat Administrateur de Virtualization ...
Alphorm
 

Similaire à MVC / Frameworks PHP (20)

Utilisation optimale et professionnelle de PHP
Utilisation optimale et professionnelle de PHPUtilisation optimale et professionnelle de PHP
Utilisation optimale et professionnelle de PHP
 
[Sildes] plateforme centralisée d’analyse des logs des frontaux http en temps...
[Sildes] plateforme centralisée d’analyse des logs des frontaux http en temps...[Sildes] plateforme centralisée d’analyse des logs des frontaux http en temps...
[Sildes] plateforme centralisée d’analyse des logs des frontaux http en temps...
 
ASP.NET MVC 6
ASP.NET MVC 6ASP.NET MVC 6
ASP.NET MVC 6
 
Déploiement, orchestration & sécurisation d’APIs
Déploiement, orchestration & sécurisation d’APIsDéploiement, orchestration & sécurisation d’APIs
Déploiement, orchestration & sécurisation d’APIs
 
Déploiement d’applications
Déploiement d’applicationsDéploiement d’applications
Déploiement d’applications
 
Integrons en mode continu
Integrons en mode continuIntegrons en mode continu
Integrons en mode continu
 
We421 g formation-administration-of-ibm-websphere-datapower-soa-appliances-v5
We421 g formation-administration-of-ibm-websphere-datapower-soa-appliances-v5We421 g formation-administration-of-ibm-websphere-datapower-soa-appliances-v5
We421 g formation-administration-of-ibm-websphere-datapower-soa-appliances-v5
 
Conférence #nwx2014 - Maxime Mauchaussée - Partager du code maintenable et év...
Conférence #nwx2014 - Maxime Mauchaussée - Partager du code maintenable et év...Conférence #nwx2014 - Maxime Mauchaussée - Partager du code maintenable et év...
Conférence #nwx2014 - Maxime Mauchaussée - Partager du code maintenable et év...
 
Cyjava formation-java-programmation-maitriser-les-fondamentaux-de-la-programm...
Cyjava formation-java-programmation-maitriser-les-fondamentaux-de-la-programm...Cyjava formation-java-programmation-maitriser-les-fondamentaux-de-la-programm...
Cyjava formation-java-programmation-maitriser-les-fondamentaux-de-la-programm...
 
Saas Libre
Saas LibreSaas Libre
Saas Libre
 
Alphorm.com Formation Les solutions de Haute Disponibilité sous Windows Serv...
Alphorm.com Formation Les solutions de  Haute Disponibilité sous Windows Serv...Alphorm.com Formation Les solutions de  Haute Disponibilité sous Windows Serv...
Alphorm.com Formation Les solutions de Haute Disponibilité sous Windows Serv...
 
Windev formation-windev
Windev formation-windevWindev formation-windev
Windev formation-windev
 
Présentation Séminaire Supervision 2009
Présentation Séminaire Supervision 2009Présentation Séminaire Supervision 2009
Présentation Séminaire Supervision 2009
 
MERAZKA Messaoud
MERAZKA MessaoudMERAZKA Messaoud
MERAZKA Messaoud
 
Formation gwt
Formation gwtFormation gwt
Formation gwt
 
M10961 formation-automatiser-l-administration-windows-avec-microsoft-powershe...
M10961 formation-automatiser-l-administration-windows-avec-microsoft-powershe...M10961 formation-automatiser-l-administration-windows-avec-microsoft-powershe...
M10961 formation-automatiser-l-administration-windows-avec-microsoft-powershe...
 
Power shell saturday Paris 2017 Omiossec
Power shell saturday  Paris 2017 OmiossecPower shell saturday  Paris 2017 Omiossec
Power shell saturday Paris 2017 Omiossec
 
Alphorm.com Support de la Formation Red Hat Administrateur de Virtualization ...
Alphorm.com Support de la Formation Red Hat Administrateur de Virtualization ...Alphorm.com Support de la Formation Red Hat Administrateur de Virtualization ...
Alphorm.com Support de la Formation Red Hat Administrateur de Virtualization ...
 
Présentation Système d’exploitation Open Source Lepton - MEITO Mai 2014
Présentation Système d’exploitation Open Source Lepton - MEITO Mai 2014Présentation Système d’exploitation Open Source Lepton - MEITO Mai 2014
Présentation Système d’exploitation Open Source Lepton - MEITO Mai 2014
 
Accéder au développement Dot.Net et Asp.Net
Accéder au développement Dot.Net et Asp.NetAccéder au développement Dot.Net et Asp.Net
Accéder au développement Dot.Net et Asp.Net
 

MVC / Frameworks PHP

  • 2. 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
  • 3. MVC Zend Framework Code Igniter PEAR PHPClasses Autres frameworks LightPath 2014© - http://www.jmrenouard.fr 3
  • 4. LightPath 2014© - http://www.jmrenouard.fr 4
  • 5. 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
  • 6. LightPath 2014© - http://www.jmrenouard.fr 6
  • 7. 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
  • 8. 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
  • 9. Conteneur du « métier » de l’application. Indépendance de la présentation. Coeur de l’application Point d’entrée vers les données persistantes. LightPath 2014© - http://www.jmrenouard.fr 9
  • 10. LightPath 2014© - http://www.jmrenouard.fr 10
  • 11. 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
  • 12. 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
  • 13. Uniformité du code. Très bon niveau de documentation. Large communauté. Coordination pour une API consistante LightPath 2014© - http://www.jmrenouard.fr 13
  • 14. LightPath 2014© - http://www.jmrenouard.fr 14
  • 15. Une implémentation d’un MVC Pas de ligne de commande Simple à mettre en oeuvre Taille de code : 80000 lignes LightPath 2014© - http://www.jmrenouard.fr 15
  • 16. 30 classes 20 classes utilitaires Simple à comprendre Simple à mettre en oeuvre Jeu de brique à assembler ! LightPath 2014© - http://www.jmrenouard.fr 16
  • 17. Uniformité du code. Très bon niveau de documentation. grande communauté. LightPath 2014© - http://www.jmrenouard.fr 17
  • 18. LightPath 2014© - http://www.jmrenouard.fr 18
  • 19. Infrastructure de diffusion de classes Taille de code : 16 millions de ligne LightPath 2014© - http://www.jmrenouard.fr 19
  • 20. 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
  • 21. 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
  • 22. 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
  • 23. 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
  • 24. LightPath 2014© - http://www.jmrenouard.fr 24
  • 25. 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
  • 26. 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
  • 27. LightPath 2014© - http://www.jmrenouard.fr 27
  • 28. 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
  • 29. LightPath: ◦Société de conseil et d’ingénierie ◦Formations, Conseil, Audit et mise en oeuvre ◦jmrenouard@lightpath.fr Jean-Marie RENOUARD ◦jmrenouard@gmail.com ◦Twitter: @jmrenouard ◦http://www.jmrenouard.fr LightPath 2014© - http://www.jmrenouard.fr 29