Les cinq précédents volets de notre analyse vous aurons permis de constater à quel point les solutions Open Source sont aujourd’hui capables de concurrencer les solutions propriétaires sur leurs propres terrains de prédilection.
En se basant sur une série d’études menée dans les domaines les plus représentatifs de l’informatique d’entreprise, Clever Age propose un décryptage des principales tendances du marché, des retours d’expériences significatifs, une présentation d’architectures types, ainsi qu’une sélection de critères permettant de se poser les bonnes questions au moment de choisir une solution.
Ce volet sera consacré aux frameworks de développement PHP. A venir prochainement : les environnements de développement et de tests.
Depuis la sortie de la première version de PHP (qui s’appelait alors PHP/FI) en 1995, de nombreux projets gravitent autour de PHP. Le plus célèbre d’entre eux, PEAR, a pour objectif de fournir une bibliothèque structurée de code Open Source PHP, tout en facilitant sa distribution et sa maintenance, ainsi qu’un cadre pour le développement d’extensions (règles de codage, mailing lists, outils, etc.). Il s’agit d’une bibliothèque d’assez bas niveau, complétant la bibliothèque PHP de base en y ajoutant des fonctions telles que le traitement des flux XML (PEAR_XML), la manipulation des images (PEAR_Image), l’abstraction de bases de données (PEAR_DB), la gestion des requêtes HTTP (PEAR_HTTP), etc. Même si de nombreuses applications PHP (la plupart en réalité) font appel à PEAR, il est difficile de parler de véritable framework PHP.
Plusieurs projets se placent dans le sillage de PEAR, avec une volonté supplémentaire de fournir un réel cadre structurant pour le développement d’applications Web. Les deux principaux sont eZ components, de la société eZ Systems (qui édite notamment le CMS Open Source eZ Publish), et le Zend Framework, de la société Zend (qui est derrière le langage PHP). Ces deux frameworks ont vocation à permettre à une équipe de développement de développer une application complète en appelant des fonctions d’assez haut niveau (authentification et droits d’accès, moteur de workflow, moteur de recherche, etc.).
La dernière tendance, en matière de frameworks de développement Web, est aux frameworks dits "RAD", pour Rapid Application Development (développement rapide d’applications). L’initiateur de cette vague est le framework Ruby On Rails (pour le langage Ruby) dont la première version date de 2004. Les deux idées fortes de RoR sont :
Un framework RAD se compose de :
Les frameworks RAD se caractérisent par une prise en main extrêmement rapide et une productivité incomparable pour le développement d’applications Web de type "Web 2.0" (la création d’une application de type blog peut se faire en un quart d’heure à peine). En revanche, ils trouvent leurs limites lorsqu’il s’agit de développer des applications métier complexes interagissant fortement avec le système d’informations.
En PHP, plusieurs frameworks RAD ont vu le jour, dont les plus connus sont Seagull et surtout Symfony, développé par la société française Sensio et utilisé dans un nombre croissant de projets à travers le monde (dont la plupart des nouveaux projets de la société Yahoo !).
ScreenTonic s’appuie sur le framework Seagull pour gérer ses campagnes publicitaires
ScreenTonic est une société spécialisée dans la publicité sur téléphone mobile. Elle a commencé à développer un produit de gestion de campagnes publicitaires pour téléphones mobiles en 2003. En 2005, elle a décidé de redévelopper complètement son logiciel, dans l’optique de séduire les utilisateurs grâce à un produit innovant, multi-usage et très "Web 2.0".
Le choix s’est porté sur le framework Seagull, qui était à l’époque un des seuls frameworks RAD PHP. L’attention a été portée sur les phases de conception, suivies de phases de réalisation très courtes (dans un rapport variant de 3 à 6 entre la conception et la réalisation !). Par rapport au modèle MVC classique, une couche supplémentaire de services a été intercalée entre le contrôleur et les modèles, afin de simplifier la mise en place de règles métier transverses.
La plateforme déployée (2 serveurs frontaux et 1 serveur de base de données) permet de répondre à la demande d’une centaine de clients de ScreenTonic partout dans le monde.
En 2007, ScreenTonic a été rachetée par la société Microsoft, tout en conservant son identité propre.
Refonte du site Internet d’une banque de gestion privée avec Symfony
Cette société de gestion de portefeuilles assure également la transmission des ordres pour les clients souhaitant prendre eux-mêmes leurs décisions d’investissement. Conscient de l’apport d’Internet dans le secteur de la finance, cette banque a souhaité accroître les fonctions offertes à ses clients via Internet. Cette volonté s’est traduite par la refonte complète de son site internet et par la mise à disposition de ses Partenaires d’un espace dédié, interfacé avec les outils propres au système d’information la banque.
Pour réaliser cette refonte, il a été choisi de s’appuyer sur le framework Symfony, qui, outre son intérêt purement technique, dispose d’une communauté active et d’une documentation très complète. A côté de Symfony, le projet utilise également les bibliothèques FPDF (génération de PDF) et Image Graph (création de graphes au format PNG). Par ailleurs, le site met en œuvre les dernières avancées ergonomiques réalisées pour les interfaces web, à l’aide d’Ajax.
Au niveau infrastructure, la plateforme, hébergée chez Colt, comprend un unique serveur qui permet de répondre aux 2000 à 3000 visiteurs quotidiens sur le site.
Le modèle MVC
Le modèle MVC (Modèle, Vue, Contrôleur) est un fondamental en conception d’applications Web, il est mis en œuvre par la plupart des frameworks RAD.
Architecture mise en place chez Richelieu Finance
Bien qu’un peu atypique, l’architecture mise en place chez Richelieu Finance reste classique pour une application PHP Symfony. Le framework gère les requêtes HTTP entrantes de la manière suivante :
Les rapports PDF, les graphiques de performance, etc., sont tous générés en employant Symfony et, au besoin, une librairie externe qui est alors chargée par le framework.
Voici les principaux critères à prendre en compte au moment de choisir un framework de développement PHP :
| En savoir plus ? Clever Age a publié un livre blanc sur les frameworks PHP en entreprise qui vous permettra de choisir la solution la plus proche de vos besoins. |
Bonjour,
Afin de compléter la liste des "principaux frameworks PHP de RAD" je souhaitais juste rajouter le framework CakePHP qui a été oublié. C’est à la base le port en PHP du framework Ruby On Rails, basé sur le paradigme "des conventions plutôt que de la configuration".
La plupart des fonctionnalités classiques y sont intégrées de base (Authentification, Gestion des droits, Sécurité, AJAX, REST...) et le framework est assez rapide à prendre en main grâce également à une grande communauté. Idéal pour tous types d’applications développées de manière agile, il est relativement plus accessible que Symfony.
C’est le framework choisi entre autre par la Mozilla Corporation pour ses développements (https://addons.mozilla.org/). Pour plus d’informations vous pouvez visiter http://www.cakephp.org ou son équivalent francophone http://www.cakephp-fr.org
Pierre
J’ai eu l’occasion d’utiliser le framework Jelix. J’ai été séduit tout de suite, du pure MVC, puissant, ...
http://jelix.org/
Mathieu