Utiliser conjointement le Zend Framework et eZ Publish

Utiliser conjointement le Zend Framework et eZ Publish

Utiliser conjointement le Zend Framework et eZ Publish est une idée qui revient souvent dans les discussions. Certains ont même demandé pourquoi eZ Publish n'était pas basé sur ce framework. Ce n'est certainement pas la solution, mais on a tout à gagner à faire cohabiter les 2 solutions.

L'indépendance

L'explication donnée par Bertrand Dunogier sur share.ez.no expliquant le besoin d'indépendance vis à vis d'une solution tierce est tout à fait justifiable. J'irais même plus loin en disant qu'elle est indispensable. En effet, eZ System a développé son propre framework de composants (ie eZ Components), et ainsi maintient une certaine concurrence entre les solutions de composants. Si le CMS eZ Publish était basé sur le Zend Framework se serait un des framework de grande qualité qui disparaitrait. Matthew Weier O’Phinney, responsable du Zend Framework,avoue utiliser le composant de workflow d'eZ Component

ZF : une bibliothèque standard de PHP ?

Pourtant, si l'on se limite à l'approche orienté composant qu'offre le Zend Framework, il est parfaitement possible d'utiliser des composants dans eZ Publish.
En effet, on peut voir le Zend Framework comme une bibliothèque standard de PHP, une simple extension à la SPL.

De la même manière qu'une dépendance vis à vis de la SPL n'est pas problématique, une dépendance vis à vis du Zend Framework ne l'est pas non plus. C'est juste le curseur qu'on le déplace. Finalement, PHP dépend de Zend, le Zend Framework dépend de Zend, la dépendance vis à vis d'un prestataire tiers ne change pas.

L'exemple de Symfony

Symfony a choisi lui aussi de ne pas développer tous les composants mais plutôt de délégué certaines taches à des framework tiers, et en particulier le Zend Framework.
Cette manière de faire à été réaffirmée en début d'année lors du Symfony Live 2010. Avec notamment l'intervention de Matthew Weier O’Phinney qui à animé une session à propos de l’utilisation conjointe des deux outils (les slides de la présentation et le debriefing sur son blog)

Avantage de faire cohabiter les 2 technolgoies

L'avantage d'utiliser des composants développés au dessus du Zend Framework sont multiples. D'une part, on peut bénéfier de composants prêts à l'emploi que l'on ne retrouve pas nativement dans d'autres technologies et de les intégrer au CMS. D'autre part, en développant des composants basé sur une technologie tierce permet de réutiliser ces derniers dans d'autres projet avec d'autres technologies comme, par exemple Symfony, Drupal, SPIP, Joomla, ... et même en développement from scratch .

Pour conclure, on a d'un coté un éditeur de solution qui souhaite conserver une indépendance totale sur ces composants, un choix qui est plutôt sain et contribue à faire de PHP l'une des meilleurs plate-formes Web. De l'autre coté, la possibilité pour les utilisateurs de bénéficier de composant prêt à l'emploi fournit par le Zend Framework

Commentaires

truffo

Pour compléter 2 ans plus tard, on dirait que la réflexion à évolué et que Symfony va devenir le framework de base pour la prochaine version majeures d'eZ Publish http://symfony.com/blog/symfony2-meets-ez-publish-5

web agency cms

eZ Publish est aujourd’hui la solution open source professionnelle leader sur le marché pour déployer des applications web à forts enjeux : sites institutionnels hautement accessibles, portail de contenus, extranet collaboratifs ou communautaires, sites marketing à forte audience, site multicanaux (mobile, widget, SMS, …), plate-formes multi sites, …

truffo

Pour les fautes d'orthographe, je suis au courant, j'assume.

Sur la taille du framework, c'est un peu un faux problème, dans le cas de Zend il fait 24 Mo une fois décompressé, je ne pense pas que cela pose de gros problème (dont 9.5 pour la gestion des Locale ...).

Sur la notion de couplage, je ne crois que pas que l'on peut parler véritablement de couplage fort. Comme l'atteste la documentation sur les dépendances les composants avec des dépendances fortes sont assez peu nombreux.

Nicolas

Sympathique vue sur une discussion similaire sur le portail de la communauté : http://share.ez.no/forums/general/ezcomponent-vs-zend-framework.

Pour poursuivre sur ce que dit Damien sur les dépendances fortes à l'intérieur d'un framework, qui sont un peu ennuyeuses dans certains frameworks à couplage fort, c'est un des points intéressants dans les eZ Components : faible couplage, la seule dépendance étant 'ezcBase'. Tout le reste est affaire de TieIns quand on veut utiliser plusieurs composants.

Sur l'utilisation d'un framework dans eZ Publish, tout framwork ayant sont système d'autoloading pourra être intégré super facilement. Il suffira d'ajouter quelques lignes de code à la fin du config.php, comme documenté dans config.php-RECOMMENDED,livré en standard. Mes yeux me font un peu mal aussi, mais je n'en rajoute pas une couche, tu as été pédago Damien ;)

Damien

Plusieurs extensions sur projects.ez.no utilisent un ou des composants du Zend Framework par exemple jvAMF ou autostatus. Il y a deux problèmes principaux à résoudre lors de l'utilisation d'un ou plusieurs composants Zend Framework : 1. déterminer la liste des dépendances et construire son "bundle" pour ne pas se taper tout le framework. Dommage qu'il n'y ait pas un outil en ligne pour ça avec gestion des dépendances comme le font certains frameworks JavaScript 2. gérer l'inclusion des fichiers. Vu qu'il y a pas mal d'inclusions explicites dans le framework (et pas forcément de classes), une solution (la seule ?) consiste à modifier le include path que le framework trouve ses petits :)

Sinon, mes yeux me font très mal ;-) : - discution => discussion - Certain ont même demandé => Certains ... - son propre framework de composant => son propre framework de composants ...

Ajouter un commentaire

Plain text

  • Aucune balise HTML autorisée.
  • Les adresses de pages web et de courriels sont transformées en liens automatiquement.
  • Les lignes et les paragraphes vont à la ligne automatiquement.
By submitting this form, you accept the Mollom privacy policy.