Académique Documents
Professionnel Documents
Culture Documents
Frameworks PHP Pour Lentreprise
Frameworks PHP Pour Lentreprise
Frameworks PHP
pour l'entreprise
Emmanuelle Gouleau
Olivier Mansour
Tristan Rivoallan
Vincent Lemaire
Xavier Lacot
version 1.0
14/05/08
Clever Age 37 boulevard des Capucines 75 002 Paris Tl: 01.53.34.66.10 Fax: 01.53.34.65.20
1/38
1.
Introduction
Quels sont les risques choisir un framework donn ? A quel point cela engage-til l'entreprise ? Quels sont les impacts sur son infrastructure, son mode de
fonctionnement ?
Dans un contexte projet, quel est le framework PHP MVC le plus adapt votre
structure ? Quel est celui qui peut vous permettre de rationaliser plus aisment
vos dveloppements ? Quel est le plus mme d'acclrer vos travaux ?
Clever Age 37 boulevard des Capucines 75 002 Paris Tl: 01.53.34.66.10 Fax: 01.53.34.65.20
2/38
2.
Sommaire
1.Introduction........................................................................................2
2.Sommaire...........................................................................................3
3.Qu'est ce qu'un framework MVC ?..........................................................5
1.L'intrt d'un framework ?........................................................................................ 5
2.Qu'est ce que MVC ?................................................................................................ 5
5.CakePHP...........................................................................................16
1.Origine et motivation du framework......................................................................... 16
2.Points forts du framework....................................................................................... 16
3.Points faibles du framework.................................................................................... 16
4.Organisation des fichiers.........................................................................................17
5.Traitement d'une requte........................................................................................ 18
6.Processus d'internationalisation............................................................................... 18
7.Processus de contribution du framework................................................................... 18
8.Exemple d'extension.............................................................................................. 18
9.Courbe d'activit du framework............................................................................... 19
10.Quelques rfrences............................................................................................. 19
11.L'avis de Clever Age............................................................................................. 19
6.Code Igniter...................................................................................... 20
1.Origine et motivations du framework........................................................................20
2.Points forts du framework....................................................................................... 20
3.Points faibles du framework.................................................................................... 20
4.Organisation des fichiers.........................................................................................21
Clever Age 37 boulevard des Capucines 75 002 Paris Tl: 01.53.34.66.10 Fax: 01.53.34.65.20
3/38
7.Symfony...........................................................................................24
1.Origine et motivations du framework........................................................................24
2.Points forts du framework....................................................................................... 24
3.Points faibles du framework.................................................................................... 24
4.Organisation des fichiers.........................................................................................25
5.Traitement d'une requte........................................................................................ 26
6.Processus d'internationalisation............................................................................... 26
7.Processus de contribution au framework................................................................... 26
8.Gestion des extensions........................................................................................... 26
9.Courbe d'activit autour du framework..................................................................... 27
10.Implmentation de rfrence.................................................................................27
11.Quelques rfrences............................................................................................. 27
12.L'avis de Clever Age............................................................................................. 28
8.Zend Framework................................................................................29
1.Origines et motivations du framework...................................................................... 29
2.Points forts du framework....................................................................................... 29
3.Points faibles du framework.................................................................................... 29
4.Organisation des fichiers.........................................................................................30
5.Traitement d'une requte........................................................................................ 30
6.Processus d'internationalisation............................................................................... 30
7.Processus de contribution au framework................................................................... 30
8.Gestion des extensions........................................................................................... 31
9.Courbe d'activit autour du framework..................................................................... 32
10.Quelques rfrences............................................................................................. 32
11.L'avis de Clever Age............................................................................................. 32
10.Conclusion...................................................................................... 38
11.Bibliographie................................................................................... 39
Clever Age 37 boulevard des Capucines 75 002 Paris Tl: 01.53.34.66.10 Fax: 01.53.34.65.20
4/38
3.
donnes transmises par le modle et reoit toutes les actions effectues par
l'utilisateur, sans en assurer le traitement : les actions sont transfres au
contrleur.
la vue ou synchroniser des informations via le modle. Il reoit toutes les actions
effectues par l'utilisateur, et effectue la dtection d'erreurs (vrification du
remplissage correct des champs d'un formulaire, par exemple). Tout comme la
vue, le contrleur n'effectue aucune modification sur les donnes, il est
uniquement charg d'appeler le modle et de renvoyer la vue concerne.
Un bon exemple valant mieux qu'un long discours, partons du principe que notre
application doit afficher une liste de clients et permettre l'ajout, la suppression et la
modification de ceux-ci.
Clever Age 37 boulevard des Capucines 75 002 Paris Tl: 01.53.34.66.10 Fax: 01.53.34.65.20
5/38
Le Modle lit en base de donnes toutes les informations sur les clients, et
La Vue se charge de dcorer les donnes issues du modle (mise en gras, code
html, etc.), afficher des liens d'dition et de suppression ainsi que le formulaire de
modification des fiches clients.
Le Contrleur, quand lui, vrifie que les informations saisies dans le formulaire
de modification d'un client sont bien formates, et que tous les champs
obligatoires ont t remplis par des donnes correctement formates (que
l'adresse email est bien conforme aux standards ou que le numro de tlphone
est valide, par exemple).
Pour rsumer le principe de fonctionnement du MVC, lorsqu'un client effectue un appel
une application, la requte est analyse par le contrleur qui demande au modle
concern d'effectuer les oprations. Enfin, c'est ce mme contrleur qui va renvoyer la
vue concerne au client.
Clever Age 37 boulevard des Capucines 75 002 Paris Tl: 01.53.34.66.10 Fax: 01.53.34.65.20
6/38
4.
Au-del des considrations techniques qui entrent en jeu lors du choix d'un framework, il
est essentiel d'valuer les risques prsents par chacune des solutions retenues. Le
framework devant terme constituer la base de la majorit des dveloppements raliss
pour l'entreprise, il est important que sa prennit soit assure : son dveloppement doit
tre suffisamment dynamique, afin de limiter les risques d'abandon ou de fermeture du
code.
Comment valuer ces risques ? La mthode QSOS (Qualification an Selection of Open
Source software) propose quelques critres intressants, organiss selon quatre axes :
Prennit intrinsque (maturit, adoption, etc.), Solution industrialise (documentation,
packaging, etc.), Adaptabilit technique (modularit, extensibilit, etc.) et Stratgie
(direction des dveloppements, licence, etc.).
2. Vues
MVC prsente le grand intrt de permettre aux utilisateurs non dveloppeurs (comme
les web designers ou intgrateurs) de pouvoir modifier les gabarits des pages produites.
Typiquement, un web designer doit pouvoir modifier aisment la mise en forme des
templates en utilisant une syntaxe simple et, si possible, standardise.
En ce sens, il convient de se poser la question du fonctionnement du systme de gestion
de templates des frameworks, et l'adaptation ncessaire pour les personnes amenes
travailler sur ceux-ci. Il existe plusieurs cas :
Soit le framework dispose de son propre systme de gestion de templates,
Soit il utilise un moteur de templating externe (comme Smarty 2 ou PHPTal3),
Soit il permet de combiner les deux, en faisant un choix avant d'entrer en phase
de dveloppement.
En fonction des comptences internes de votre entreprise, il peut tre judicieux de ne
pas s'attacher une technologie intgrant des conventions d'critures propres (comme
les moteurs de templates) mais plutt de s'appuyer directement sur des technologies de
plus bas niveau (par exemple PHP).
3. Performances
Bien videmment, le critre de la performance est au premier plan dans l'valuation d'un
framework. Le propre du Web est la ractivit, la rapidit et la facilit d'accs
2 http://www.smarty.com
3 http://phptal.motion-twin.com
Clever Age 37 boulevard des Capucines 75 002 Paris Tl: 01.53.34.66.10 Fax: 01.53.34.65.20
7/38
l'information. Aussi, mme s'il est extrmement bien conu en termes de structure et
d'architecture, un framework aux performances dplorables ne permettra pas des
dveloppements et une maintenance d'une application Web satisfaisants.
Ce critre de la performance, bien qu'il semble a priori essentiel, a trop souvent tendance
tre oubli par les dveloppeurs soucieux de l'lgance de leur code et des
technologies employes. On trouve sur le Web de nombreuses tudes de performances
( benchmarks ) qui se proposent de comparer l'efficacit des diffrents frameworks du
march, mais de telles tudes sont dans la plupart des cas prendre avec prcaution,
car trop de facteurs influent sur le rsultat final : directives de compilation de
l'interprteur, optimiseurs de cache et de performances activs, adquation des tests
effectus aux ralits du dveloppement, soucis d'optimisation de l'environnement
serveur.
En vrit, rien ne vaut une implmentation de rfrence, qui constitue la seule vritable
mise en situation de production du framework. Oubliez les benchmarks qui prtendent
mesurer au millime de seconde prs l'affichage d'un texte statique, ce ne sont
gnralement que de dsesprantes tentatives de masquer la ralit des choses.
Une prsentation de Cal Henderson (Flickr), en 2005, rsume trs bien ce point de vue,
en exprimant l'ide selon laquelle les frameworks ne passent pas l'chelle :
frameworks don't scale 4.
4. Routage
Le routing , que l'on peut traduire en franais par routage , est le mcanisme par
lequel la requte d'une URI est associe la ralisation d'une action par le framework. Le
routing prsente plusieurs intrts : filtrer les requtes effectues sur l'application,
permettre l'association de jolies URLs des actions ct serveur, mais galement
abstraire la notion d'URLs au sein de l'application.
On distingue gnralement deux types de routage :
le routage ascendant , dont le rle est d'effectuer l'acheminement d'une
Le routage est un lment trs intressant par diffrents aspects. Tout d'abord, il favorise
le rfrencement d'un site Web en facilitant la mise en place d'URLs propres, et ceci sans
le recours systmatique au mod_rewrite d'Apache2, alourdissant la charge des serveurs
Web en cas de sur-utilisation. Il procure galement d'autres gains, moins visibles et
mesurables, mais tout aussi importants : scurit de l'accs l'application, tablissement
4 Voir http://www.iamcal.com/talks/flickr_services.pps
Clever Age 37 boulevard des Capucines 75 002 Paris Tl: 01.53.34.66.10 Fax: 01.53.34.65.20
8/38
5. Internationalisation et rgionalisation
En quoi cela consiste-t-il ? Selon Wikipdia, L'internationalisation d'un logiciel consiste
le prparer la rgionalisation ( localization en anglais), c'est--dire l'adaptation
des langues et des cultures diffrentes. Contrairement la rgionalisation, qui ncessite
surtout des comptences en langues, l'internationalisation est un travail essentiellement
technique, men par des programmeurs 5). Le travail d'internationalisation intervient
sur quatre parties d'un logiciel :
les contenus en base de donnes,
les textes de l'interface,
les formats rgionaux (devises, dates, etc.),
la gestion des jeux de caractres.
Bien qu'tant cruciale, cette fonctionnalit d'i18n est souvent oublie - ou carte - par
les dveloppeurs de frameworks, et n'est que rarement disponible nativement. Si ce
besoin est important pour votre projet, veillez donc bien le valider lors de la phase
d'valuation de la solution.
6. Outillage
Le terme outillage englobe tous les lments non ncessaires au bon fonctionnement
d'un framework, mais qui fournissent de l'assistance au dveloppement.
1. Journaux
Un framework doit tre capable de produire des journaux d'excution, qui doivent fournir
par dfaut suffisamment d'informations pour que le dveloppeur soit en mesure de
comprendre les tapes qui ont men une erreur. Le systme de logs d'un framework
doit permettre de journaliser des entres relatives l'excution des dveloppements
spcifiques, et il doit en outre tre flexible et extensible :
filtrage des entres en fonction d'un niveau d'erreur (debug, avertissement, erreur
fatale, etc.),
disponibilit de diffrents backends (fichier, email, xmpp, etc.),
format des messages standards,
possibilit de dvelopper des backends personnaliss.
2. Debuggage
Le debuggage correspond la recherche et l'analyse des dysfonctionnements.
5 http://fr.wikipedia.org/wiki/Internationalisation_de_logiciel
Clever Age 37 boulevard des Capucines 75 002 Paris Tl: 01.53.34.66.10 Fax: 01.53.34.65.20
9/38
3. Scaffolding
Le scaffolding, que l'on pourrait littralement traduire par chafaudage , est une
structure de base permettant d'effectuer des oprations de type CRUD (Create, Retrieve,
Update, Delete) sur une structure de donnes particulire.
Certains frameworks proposent de gnrer du code effectuant ces oprations - charge
ensuite au dveloppeur d'adapter ce code ses besoins spcifiques. D'autres frameworks
possdent des capacits d'inspection de la base de donnes, pour permettre la
gnration la vole d'un scaffolding.
Il est important de bien comprendre le mcanisme de scaffolding adopt par un
framework, afin de pouvoir en tirer le maximum. Peut-on aisment modifier les pages
gnres, leur ajouter des fonctionnalits ou modifier leur prsentation ? Existe-t-il des
extensions ou plugins de personnalisation ?
5. Environnements de dveloppement
Il est important de rflchir aux capacits d'intgration du framework avec
l'environnement de dveloppement utilis au sein de l'entreprise, si celui-ci est
standardis dans votre structure :
6 http://xdebug.org
Clever Age 37 boulevard des Capucines 75 002 Paris Tl: 01.53.34.66.10 Fax: 01.53.34.65.20
10/38
Clever Age 37 boulevard des Capucines 75 002 Paris Tl: 01.53.34.66.10 Fax: 01.53.34.65.20
11/38
Conformit des pages XHTML par dfaut : tout framework fournit un ensemble de
pages web prdfinies, comme celles destines l'affichage d'erreurs (404, 500,
etc).
7 http://tools.ietf.org/html/rfc2616
Clever Age 37 boulevard des Capucines 75 002 Paris Tl: 01.53.34.66.10 Fax: 01.53.34.65.20
12/38
9. Ajax
Ajax, et plus largement les technologies du Web 2.0 , est une des modes du
dveloppement Web depuis 2005/2006, et est trs pris des dveloppeurs et des
utilisateurs. Tout bon framework doit donc proposer des moyens aiss pour le mettre en
uvre.
Cependant, la question n'est pas de savoir si le framework le permet, mais surtout
comment il le permet : il n'est rellement intressant d'utiliser Ajax que si on peut le
faire de manire non intrusive 9, sans remettre en question l'accessibilit de l'application
et son utilisation dans des environnements moins riches (tlphone mobile, etc.).
10.Extensibilit
Outre la possibilit d'emploi de briques externes, un bon framework doit tre aisment
extensible, ce qui est sensiblement diffrent. En rsum, l'extensibilit d'un framework
est la capacit qu'a un dveloppeur tendre certains comportements (voire les
remplacer), sans pour autant devoir modifier le code d'origine du framework. Cette
extensibilit peut se manifester sous plusieurs formes :
hritage de classes,
emploi de plugins,
simplicit d'criture des plugins,
possibilit de choisir un ORM donn (ORM = Object-relational mapping un outil
11.Authentification et permissions
L'authentification permet de contrler l'identit d'un utilisateur, tandis que les
permissions sont les droits d'accs donns l'utilisateur, en fonction de son
authentification et de son statut.
Sauf dans quelques rares cas, la plupart des applications Web dveloppes aujourd'hui
incluent la notion de compte utilisateur et, parfois, la sauvegarde de prfrences
utilisateur. Sans framework, la ralisation d'une application Web grant des profils - et
ventuellement des droits d'accs - peut rapidement tourner au cauchemar. Alors que,
bien pense, la gestion des droits d'accs aux diffrentes parties d'une application Web
peut tre enfantine mettre en place. Avant de choisir un framework pour vos
dveloppements, vous devriez donc examiner avec attention les fonctionnalits
8 http://tools.ietf.org/html/rfc2616#section-14.9
9 http://www.thefutureoftheweb.com/talks/2006-10-ajax-experience/slides/
Clever Age 37 boulevard des Capucines 75 002 Paris Tl: 01.53.34.66.10 Fax: 01.53.34.65.20
13/38
12.Scurit
La question de la scurit est directement lie celle de l'authentification et des
permissions, mme si elle recouvre en plus d'autres problmatiques : gestion des
attaques XSS ou des injections SQL, possibilit de dni de service, etc. Tous les
frameworks ne le proposent pas, mais le filtrage des donnes entres par l'utilisateur
devrait tre une mesure de scurit systmatique, de mme que l'chappement des
donnes renvoyes au navigateur.
videmment, la question de la scurit est une question difficile valuer, car elle
dpend de nombreux autres lments que la conception intrinsque du framework : soin
apport par le dveloppeur la conception de son application, environnement de
dploiement. Ceci dit, un framework qui prend en charge des lments basiques de
scurit sera toujours d'une aide plus prcieuse qu'un framework qui lude gentiment la
question. Pour rsumer, la scurit d'un framework est un point qui doit tre examin
indpendamment des comptences des dveloppeurs qui l'emploieront, et de
l'environnement au sein duquel il sera dploy. La conception d'un framework doit donc
prendre en compte les diffrents aspects de la scurit et de la sret de
fonctionnement. Par exemple, la validation et filtrage des donnes en entre et le
contrle des informations renvoyes permettent de se librer des attaques de type XSS
ou injections SQL.
13.Dploiement
Le dveloppement d'une application n'est pas tout, il faut aussi pouvoir la mettre en
recette, production, etc. Le framework valu propose-t-il des fonctionnalits relatives
ce problme ? Autre point important, la gestion des montes en version du produit par
rapport aux applications existantes est-il possible ?
Les volutions des versions du framework entranent bien souvent des modifications
apporter au niveau du code, que ce soit dans sa structure ou ses principes de
dveloppement : est-il prvu de pouvoir travailler sur ces diffrentes versions ? De
mme, est-il possible de maintenir en production, sur un mme environnement, des
applications utilisant diffrentes versions du framework ?
Intgration avec des outils existants (Selenium [SEL 2008], CruiseControl [CRU
2008], etc.)
Clever Age 37 boulevard des Capucines 75 002 Paris Tl: 01.53.34.66.10 Fax: 01.53.34.65.20
14/38
15.Courbe d'apprentissage
Mme s'il est cens amliorer la productivit des quipes de dveloppement en leur
facilitant le travail, un framework Web ncessite toujours une phase d'apprentissage ne
pas ngliger, ne serait-ce que pour matriser l'outillage, ou connatre l'ensemble des
fonctionnalits disponibles : la matrise d'un framework PHP n'induit pas forcment la
connaissance et la comprhension des frameworks concurrents. Par ailleurs, les
frameworks concerns par cette tude font pour la plupart l'objet de cycles de
dveloppement trs dynamiques. Si c'est un bon point en terme d'amlioration du
produit, cela signifie cependant que les quipes de dveloppement doivent tre
pralablement formes l'emploi du framework, et capables d'organiser une veille
technologique autour du produit, de faon rester au courant des nouvelles possibilits.
La qualit de la documentation et la mise en place d'une communaut dynamique sont
primordiales pour permettre un apprentissage ais du framework. Certains produits ont
choisi de mettre en place des incubateurs de projets, d'autres mettent l'accent sur les
tutoriels, la documentation, la promotion par la communaut. Une bonne ide,
malheureusement trop rarement mise en pratique, consiste mettre en place une
implmentation de rfrence, qui met en lumire toutes les qualits du projet, et montre
comment effectuer diverses oprations (validation de formulaire, appel AJAX, etc.). Ces
implmentations de rfrence sont en gnral d'une grande aide au dveloppeur, car
elles illustrent de manire pratique les mcanismes du framework pour rpondre un
problme donn.
16.Aspects lgaux
Mme s'il elle ne participe pas la qualit de son code, la licence d'un framework est un
lment vrifier. En pratique, la plupart des frameworks PHP du march sont placs
sous des licences trs permissives, comme les licences MIT10 ou new BSD11. Cependant, il
existe quelques exceptions plus restrictives, au risque que les contributions se fassent de
faon moins spontane : en gnral, cela nuit au dynamisme du dveloppement du
framework.
Pour plus d'informations sur les licences logicielles habituellement employes, vous
pouvez consulter [GNU 2008].
10 http://www.opensource.org/licenses/mit-license.php
11 http://www.opensource.org/licenses/bsd-license.php
Clever Age 37 boulevard des Capucines 75 002 Paris Tl: 01.53.34.66.10 Fax: 01.53.34.65.20
15/38
5.
CakePHP
1. Origine et motivation du framework
Clever Age 37 boulevard des Capucines 75 002 Paris Tl: 01.53.34.66.10 Fax: 01.53.34.65.20
16/38
Clever Age 37 boulevard des Capucines 75 002 Paris Tl: 01.53.34.66.10 Fax: 01.53.34.65.20
17/38
Dispatcheur
Routes
Contrleur
Modle
Helpers
Base de
donnes
Client
Vue
lments
Template
6. Processus d'internationalisation
La gestion de l'internationalisation d'un projet est trs rcente sous CakePHP. En effet,
cette fonctionnalit, bien qu'essentielle pour un framework, n'a t apporte que depuis
la pr-version 1.2, non finalise ce jour.
8. Exemple d'extension
CakePHP propose une bibliothque d'environ 150 extensions comme un forum, un
gestionnaire d'utilisateurs ou un systme de boutique en ligne avec gestion de caddie.
Clever Age 37 boulevard des Capucines 75 002 Paris Tl: 01.53.34.66.10 Fax: 01.53.34.65.20
18/38
Il peut galement tre complt par des plugins issus de PEAR ou d'eZComponents.
10.Quelques rfrences
Mozilla Addons
NoseRub
Clever Age 37 boulevard des Capucines 75 002 Paris Tl: 01.53.34.66.10 Fax: 01.53.34.65.20
19/38
6.
Code Igniter
1. Origine et motivations du framework
pratiques de rutilisation. Les helpers sont assez pauvres (pas d'intgration d'Ajax
Clever Age 37 boulevard des Capucines 75 002 Paris Tl: 01.53.34.66.10 Fax: 01.53.34.65.20
20/38
notamment).
Le systme de scaffolding permet uniquement d'alimenter les donnes de l'application
CodeIgniter et ne peut pas tre utilis pour construire des back-offices. CodeIgniter ne
propose rien ou pas grand chose pour grer ses applications (environnements, outils de
dboguage, ...).
Le souhait de conserver la compatibilit avec PHP4 peut tre considr comme un point
faible : le parti pris de CodeIgniter ne lui permettra pas de se hisser au niveau technique
de ses concurrents.
Clever Age 37 boulevard des Capucines 75 002 Paris Tl: 01.53.34.66.10 Fax: 01.53.34.65.20
21/38
Base de
donnes
Routing
Scurit
Modles
Librairies
Contrleur
Client
Helpers
Plugins
Cache
Vue
Scripts
6. Processus d'internationalisation
CodeIgniter ne supporte pas le comportement i18n standard et implmente son propre
mcanisme d'internationalisation.
Le processus d'internationalisation est gr dans autant de fichier PHP que de langues
utilises par l'application.
$lang['language_key'] = "The actual message to be shown";
Ce systme est pauvre, mais reste dans la logique de l'application, car il est facilement
comprhensible par tous les dveloppeurs.
Clever Age 37 boulevard des Capucines 75 002 Paris Tl: 01.53.34.66.10 Fax: 01.53.34.65.20
22/38
8. Exemple d'entension
CodeIgniter propose deux mcanismes pour tendre la solution : des hooks permettant
de modifier les classes de base, et des plugins.
Les hooks PHP4 permettent d'tendre et de modifier le cur du framework. Ce sont des
points d'entres prdfinis auxquels il est possible d'attacher ses propres fonctions. Huit
points d'entres sont ainsi dfinis. Ils permettent, par exemple, d'amliorer les
fonctionnalits de profiling et de cache.
Les plugins sont en ralit des collections de fonctions contribues par la communaut
CodeIgniter et destines tre appeles depuis les contrleurs ou les vues. Par exemple,
un contributeur propose un plugin pour raliser des formulaires d'upload de documents
en Ajax.
Les extensions sont majoritairement des extensions techniques du framework, on trouve
peu de modules prts l'emploi permettant directement de bnficier nativement de
nouvelles fonctionnalits.
10.Quelques rfrences
Plusieurs rfrences sont disponibles sur http://codeigniter.com/projects/, mais aucun
gros acteur du Web ne semble employer Code Igniter comme la base de ses
dveloppements.
Clever Age 37 boulevard des Capucines 75 002 Paris Tl: 01.53.34.66.10 Fax: 01.53.34.65.20
23/38
7.
Symfony
1. Origine et motivations du framework
Clever Age 37 boulevard des Capucines 75 002 Paris Tl: 01.53.34.66.10 Fax: 01.53.34.65.20
24/38
Clever Age 37 boulevard des Capucines 75 002 Paris Tl: 01.53.34.66.10 Fax: 01.53.34.65.20
25/38
Action
Client
Accs aux
donnes
Base de
donnes
Abstraction
des donnes
(ORM)
Contrleur
principal
Modules
Layout
Vue
Template
6. Processus d'internationalisation
Symfony est sans doute le premier framework proposer une internationalisation (i18n),
reprise du framework Prado12, et une localisation (l10n) intgrales, base de fichiers
XLIFF. C'est l'un des gros points forts du framework puisque le principe est fort bien
explicit dans la documentation et relativement simple mettre en uvre.
Clever Age 37 boulevard des Capucines 75 002 Paris Tl: 01.53.34.66.10 Fax: 01.53.34.65.20
26/38
10.Implmentation de rfrence
Une implmentation de rfrence de Symfony a t ralise peu aprs le lancement de
Symfony, en Dcembre 2005 : il s'agit d'Askeet, le Digg-like du pauvre. Remise jour de
manire irrgulire, cette implmentation ne reflte malheureusement plus toute la
qualit et la richesse de Symfony, et il est frquent que les utilisateurs dbutants aient
du mal faire fonctionner l'application, mme en suivant parfaitement le guide.
Cependant, Askeet reste d'une grande aide pour les utilisateurs confirms, et permet de
bien intgrer les grands concepts architecturaux du framework.
De plus, Symfony met disposition un certain nombre de screencasts ou d'exemples de
fonctionnement d'applications, permettant une prise en main pas pas du framework
travers des cas divers et varis.
11.Quelques rfrences
Delicious - http://del.icio.us/
Clever Age 37 boulevard des Capucines 75 002 Paris Tl: 01.53.34.66.10 Fax: 01.53.34.65.20
27/38
Symfonians - http://symfonians.net/
Clever Age 37 boulevard des Capucines 75 002 Paris Tl: 01.53.34.66.10 Fax: 01.53.34.65.20
28/38
8.
Zend Framework
1. Origines et motivations du framework
Clever Age 37 boulevard des Capucines 75 002 Paris Tl: 01.53.34.66.10 Fax: 01.53.34.65.20
29/38
un framework.
Pr-envoi
Contrleur
action
Rpartiteur
Client
Objet
requte
Post-envoi
Actions
restantes ?
Oui
Non
Envoi
rponse
Objet
rponse
6. Processus d'internationalisation
Nativement, Zend Framework inclut divers composants comme Zend_Translate,
Zend_Locale, Zend_Date et Zend_Mesure pour grer l'internationalisation et la
localisation des applications. De nombreux formats sont supports, dont les formats
industriels , comme par exemple XLIFF.
Clever Age 37 boulevard des Capucines 75 002 Paris Tl: 01.53.34.66.10 Fax: 01.53.34.65.20
30/38
Source : Zend
Clever Age 37 boulevard des Capucines 75 002 Paris Tl: 01.53.34.66.10 Fax: 01.53.34.65.20
31/38
10.Quelques rfrences
IBM
Nokia
Intranet M6
15 http://code.google.com/p/zendex/
Clever Age 37 boulevard des Capucines 75 002 Paris Tl: 01.53.34.66.10 Fax: 01.53.34.65.20
32/38
9.
Prnit intrinsque
Cake PHP
Symfony
Zend
Framework
Code Igniter
1
date de sortie:
2005
1
date de sortie:
dcembre 2005
1
date de sortie:
2007
1
date de sortie:
2006
Maturit
ge
Stabilit
Historique, problmes
connus
2
2
2
2
version stable 1.19 version stable 1.0 version stable 1.0 version stable 1.6
2
1
Symfony est un
FORK de Mojavi2
0
Kohana en est un
FORK
Popularit
Rfrences
2
de nombreuses
rfrences
dont Mozilla
Addons
2
nombreiuses
rfrences
(Yahoo!, etc.). cf.
http://
symfonians.net/
applications/
2
nombreuses
rfrences (IBM,
Nokia, etc.). cf.
http://
framework.zend.c
om/community/
applications/
1
quelques
rfrences
dont Emmaus.uk
2
la communaut est
active sur les
forums ddis,
blogs et Google
Groups
2
la communaut
est importante
et
active sur les
forums ddis,
blogs et
Google Groups
2
la communaut
est importante
et
active sur les
forums ddis et
blogs
2
la communaut
est active sur
les forums ddis
Probabilit ou
provenance d'un FORK
Adoption
Communaut des
contributeurs
Publications
16 http://www.qsos.org/?lp_lang_pref=fr&page_id=3
Clever Age 37 boulevard des Capucines 75 002 Paris Tl: 01.53.34.66.10 Fax: 01.53.34.65.20
33/38
parution de livres
en anglais
parution d'un livre
parution d'un livre
Architect's Guide
en anglais
en anglais
to Programming
The Definitive
CakePHP
with Zend
Guide to
Recipes
Framework et
Symfony
Zend Framework
in action
Equipe dirigeante
1
Larry E.Masters et
4 autres core
developpers
1
Fabien Potencier
de Sensio Labs
2
quipe de
direction
de Zend
Technologies
2
quipe de
direction
de EllisLab
Mode de direction
1
une personne
1
une personne
2
groupe de
personnes
1
une personne
Nombre de
dvloppeurs,
identification, turnover
2
une douzaine de
personnes
2
une cinquantaine
de personnes
2
une cinquantaine
de personnes
0
pas d'information
ce sujet
2
un suivi des bugs
est disponible
via un trac wiki
2
forum ractif et
suivi des bugs
disponibles via un
trac wiki
2
suivi des bugs
disponibles au
travers
d'un wiki ddi
2
suivi des bugs
accessible via
la page
BugTracker
1
l'volution du
produit se fait sur
la
dmarche de
l'quipe de
dveloppeurs
2
une section du
forum est
consacre
pour la demande
de nouvelles
fonctionnalits
2
une page
IssueTracker est
consacre
pour la demande
de nouvelles
fonctionnalits
2
une section du
forum est
consacre
pour la demande
de nouvelles
fonctionnalits
2
Activits sur les releases release en cours:
1.2
2
release en cours:
1.1
2
release en cours:
1.5
2
release rcente:
1.6
Cake PHP
Symfony
Zend Framework
Code Igniter
Activit
Formation
2
Anaska, Sqli ou
encore Clever
0
Age
aucune offre de
sont par exemple
formation
des
n'est disponible
prestataires
pour ce framework
proposant une
formation
Symfony
2
Zend et Anaska
sont par exemple
0
des
aucune offre de
prestataires
formation n'est
proposant une
disponible pour ce
formation
framework
au Zend
Framework
2
plusieurs offres
1
existantes (Clever Zend technologies
Age, Sensio,
offre un
etc),
support
forums, mailing- pour ce framework
lists et Google
via son rseau
Groups
Support
0
aucune offre de
support hormis
forums, mailinglists et Google
Groups
0
aucune offre de
support hormis
les
forums et
mailing-lists
Conseil
Non Applicable
Non Applicable
Non Applicable
Non Applicable
Documentation
Documentation
Clever Age 37 boulevard des Capucines 75 002 Paris Tl: 01.53.34.66.10 Fax: 01.53.34.65.20
34/38
documentation
documentation
prsente sous
dtaille
la
prsente
forme d'un guide
sous la forme d'un
de
guide de
l'utilisateur
rfrence
accessible en
disponible et
ligne et
tlchargeable en
tlchargeable
ligne
avec le
framework
documentation
prsente sous
la
forme d'un manuel
utilisateur
accessible
uniquement en
ligne
documentation
importante
prsente
sous la forme
d'un manuel
utilisateur
disponible en
ligne et en livre
Assurance qualit
Outillage
1
Aucun paquet
Debian disponible
Mthode qualit
Packaging
Source
Debian
FreeBSD
HP-UX
Mac OS X
Mandriva
NetBSD
OpenBSD
RedHat/Fedora
Solaris
SuSE
Windows
Facilit d'utilisation,
ergonomie
Non Applicable
Non Applicable
Non Applicable
Non Applicable
Administration /
Supervision
Non Applicable
Non Applicable
Non Applicable
Non Applicable
Cake PHP
Symfony
Zend Framework
Code Igniter
2
plugins
2
extensions
2
possibilit d'utiliser
des composants,
modles et plugins
additionnels
2
possibilit
d'utiliser des
plugins
additionnels
2
possibilit
d'utiliser des
extensions
2
possibilit
d'ajouter des
plugins
Cake PHP
Symfony
Zend Framework
Code Igniter
2
Licence MIT
2
Licence MIT
2
nouvelle Licence
BSD
2
Licence MIT
0
pas de protection
par dfinition
0
pas de protection
par dfinition
0
pas de protection
par dfinition
0
pas de protection
par dfinition
Exploitabilit
ADAPTABILITE TECHNIQUE
Modularit
Modularit
Travaux drivs
Facilit technique de
modification du code
existant
Facilit d'extension du
code
STRATEGIE
Licence
Permissivit
Clever Age 37 boulevard des Capucines 75 002 Paris Tl: 01.53.34.66.10 Fax: 01.53.34.65.20
35/38
de la licence MIT
de la licence MIT
de la licence BSD
de la licence MIT
1
existence d'une
roadmap sans
planning
prvisionnel
1
existence d'une
roadmap
sans planning
prvisionnel
1
existence d'une
roadmap sans
planning
prvisionnel
0
aucune roadmap
publie
1
Sponsor unique:
Cake Development
corp.
1
Sponsor unique:
Sensio Labs
1
Sponsor unique:
Zend technologies
1
Sponsor unique:
EllisLabs
Roadmap
Sponsor
Sponsor
Indpendance stratgique
Indpendance
stratgique
2. Notes globales
Exprime en pourcentage du score maximal atteignable, voici la rpartition des notes de
ces 4 frameworks suivant les grandes catgories analyses :
Cake PHP
Symfony
Zend Framework
Code Igniter
Prnit
80,00%
80,00%
90,00%
63,33%
Solution industrialise
50,00%
67,65%
64,71%
47,06%
Adaptabilit
83,33%
100,00%
100,00%
83,33%
Stratgie
50,00%
50,00%
41,67%
41,67%
65,83%
74,41%
74,10%
58,85%
Moyenne
50
Solution industrialise
Stratgie
Cake PHP
Symfony
Zend Framework
Code Igniter
Adaptabilit
Clever Age 37 boulevard des Capucines 75 002 Paris Tl: 01.53.34.66.10 Fax: 01.53.34.65.20
36/38
10.
Conclusion
Pour une entreprise, choisir un framework de dveloppement Web n'est pas une tche
facile, dans la mesure o ce choix implique des problmatiques assez varies :
conception interne du framework, facilit de prise en main, qualits techniques, volution
future, etc.
Mais, au del des simples qualits des frameworks compars dans ce livre blanc,
plusieurs constantes sont prendre en compte avant de commencer une industrialisation
des dveloppements sur la base d'un de ces frameworks : le mode de fonctionnement
des quipes de dveloppement, d'infrastructure et de maintenance, les besoins
fonctionnels actuels et futurs, les contraintes de la plateforme d'hbergement.
Dans tous les cas, le choix d'un framework de dveloppement ne peut qu'amliorer la
qualit d'un existant qui, sans procdures, conventions ou normes, est rarement bien
conu. Reste encore dterminer quel est le framework qui conviendra le mieux vos
besoins et votre contexte.
Clever Age 37 boulevard des Capucines 75 002 Paris Tl: 01.53.34.66.10 Fax: 01.53.34.65.20
37/38
11.
Bibliographie
Clever Age 37 boulevard des Capucines 75 002 Paris Tl: 01.53.34.66.10 Fax: 01.53.34.65.20
38/38