Vers une convergence des frameworks PHP ?
Ces dernières semaines ont été propices aux annonces dans le monde des frameworks PHP. Tandis que Zend annonçait le début du travail sur la version 2 de son framework, Sensio Labs sortait une pré-version de Symfony 2.0. Ces deux frameworks devraient sortir pour la fin de l'année ou au début de l'année prochaine. Devant ces annonces importantes, on pourrait s'attendre à un choc des titans pour la domination du marché des frameworks PHP mais la réalité est plus complexe et plus intéressante.
Une vision commune
Dès le début ces deux frameworks ont été conçus par des entreprises pour des entreprises. Chacun a bien entendu su créer une communauté forte autour de son produit mais la vocation première est de consolider l'arrivée de PHP en entreprise.
Pour cela, ils ont mis en place différentes mesures qui rassurent les DSI :
- Licence Open Source permissive
- Support commercial
- Certification (Pour Zend Framework seulement pour le moment)
- Formation
- Documentation abondante
- Tests unitaires
C'était particulièrement important devant la myriade de frameworks dont il était bien difficile d'évaluer la pérennité. Ce point est crucial lorsqu'on investi dans des développements importants.
Des passerelles techniques
Depuis longtemps, le tutoriel de Symfony propose d'implémenter un système de recherche en utilisant le composant Zend_Search_Lucene qui fait partie de Zend Framework. Fabien Potencier, le meneur du projet Symfony, a également annoncé lors de la conférence Symfony Live 2010 que deux composants supplémentaires de Zend Framework seront bientôt utilisés dans Symfony. Il s'agit de Zend_Log et Zend_Cache qui, comme leurs noms le laisse supposer, permettent respectivement de gérer la journalisation des messages et le cache applicatif.
Il a également indiqué que le framework allait abandonner son outil maison de tests unitaires au profit de PHPUnit, projet fortement établi et utilisé pour tester Zend Framework.
De son côté, Zend n'est pas en reste. La société a récemment annoncé que Doctrine serait utilisé par la version 2 de son framework. Cet ORM est un projet indépendant mais qui est également utilisé par Symfony. Par ailleurs, son meneur actuel, Jonathan H. Wage, est employé par Sensio Labs.
Une volonté de souder la communauté
Au-delà des aspects techniques, il semble y avoir une réelle volonté de la part des deux meneurs de ces projets pour travailler ensemble au lieu de se livrer une guerre inutile.
La présence de Matthew Weier O'Phinney, le responsable de Zend Framework, à la conférence Symfony Live 2010 à Paris est un signe fort de cette communication entre les deux projets. Les propos de Fabien Potencier confirment cette volonté de souder la communauté PHP qui s'égare parfois dans des querelles de chapelles stériles.
I would love if people from different framework communities can work together more often, like what we have done with the PHP 5.3 interoperability group. I would love if we can share more components. I would love to discuss how we can make our PHP community grow faster.
Is it a dream? I hope it's not. And I have a proposal. Let's organize an event where several PHP framework communities can discuss and share ideas. Anyone?
Cette conscience de la nécessité de coordonner les efforts des différentes communautés semblent dans l'air du temps car des représentants des principaux projets PHP ont travaillé ces derniers mois à définir une charte pour l'architecture des composants de leurs projets respectifs afin de faciliter l'interopérabilité entre eux.
Aucun trackbacks pour l'instant


1 mars 2010
Je trouve cela une excellente idée car comme écrit ci-dessus, cela soudera la communauté PHP devenue capricieuse vis-à-vis de ces deux frameworks. Sans pousser les boycottages à l’extrême, je pense que réunir ces compétences permettra de propulser encore plus l’avancée des innovations en terme d’architecture et de méthodologie des applications Web.
Cependant, j’espère que cette phase de fusion se fera sans encombre et sans précipitations…
1 mars 2010
Il n’est pas question de fusion mais simplement de travailler de manière interopérable et de ne pas réinventer la roue. On parle par exemple de Zend_Log et Zend_Cache dans Symfony2 et inversement d’un adaptateur sfYaml pour Zend_Config dans ZF2.
2 mars 2010
En même temps, les deux frameworks sont différents Zend est plus une boite à outils tandis que Symphony est plus un framework…
Il est donc normal que les deux puissent travailler ensemble, par contre Symphony et CakePHP, par exemple, là c’est 2 concurrents….
En tout cas, une chose est sûre cela ne peux faire que du bien!
2 mars 2010
Est-ce que la difficulté à choisir entre ces deux frameworks dépendra finalement des services proposés et de l’entreprise derrière ?
@Grummfy : Symfony avec un F, avec un PH, c’est un produit d’IBM (Lotus Symphony)
2 mars 2010
ZF a toujours été ouvert d’un point de vue architecturel: des composants peu couplés (enfin, sauf pour la partie MVC) qui ont fait de ce framework une sorte de deuxième PEAR.
Avec les récents « Symfony Components », Sensio rejoint la philosophie de ZF. Ces deux frameworks peuvent dorénavant travailler de concert plus facilement. Le travail réalisé par le PHP Standards Working Group m’apparait comme relativement mineur comparé à ce changement de philosophie du coté de Symfony.
Je pense par contre qu’il y aura toujours une « compétition » en ce qui concerne les choix techniques de la partie routing/dispatching, bref, ce qui constitue le coeur des applications.