En attendant eZ Publish 4.0.1 (ou 4.1)

Edit : il suffit que j'écrive un billet sur le sujet pour que la RC2 sorte avec enfin la correction des problèmes d'URL Alias. La version finale est aussi annoncée d'ici une à deux semaines sur la mailing liste si tout va bien.

eZ Publish 4.0 est sorti en décembre 2007 et depuis rien, aucune version stable. 8 mois c'est vraiment très très très long, il y a donc forcément des bugs gênants dans eZ Publish 4.0 d'autant plus que cette version est un portage vers PHP5 de la version 3.10 ce qui occasionne encore quelques bugs supplémentaires. La roadmap du bugtracker liste les problèmes résolus et non résolus mais il n'est pas toujours simple de faire le lien entre un comportement suspect et un bug dans cette liste.

Par exemple en développant la nouvelle version de ce site, je me suis trouvé face à plusieurs problèmes qui ont nécessité l'inclusion de patchs issus du SVN.

Les cache-block qui n'expirent pas

Il s'agit du bug #12175 qui empêche l'utilisation des cache-block expirant avec une sous-arborescence. Pour règler ce problème sans passer à la version 4.0.1rc1 il faut appliquer 3 patchs successifs sur l'arborescence d'eZ Publish 4.

$ cd /tmp
$ wget http://pwet.fr/content/download/71716/214901/file/patch_cache_block_12175.tar.gz
$ tar -zxvf patch_cache_block_12175.tar.gz
$ cd /path/to/ez/publish/
$ patch -p0 < /tmp/01_cache-block.patch
$ patch -p0 < /tmp/02_cache-block.patch
$ patch -p0 < /tmp/03_cache-block.patch

Les erreurs sur l'application du patch sur le change log peuvent être tranquillement ignorées.

Les variations des images re-dimensionnées en permanence

Celui la, c'est un bug vicieux, on s'en rend compte lors de la mise en production quand la machine est à plat par tous les convert (ou apache si on utilise GD) en train de générer les différentes variations encore et encore. 80 de load average sur ma pauvre Dedibox, elle a du avoir chaud ;-)

un seul patch est nécessaire et c'est immédiat et magique sur la charge de la machine

$ cd /tmp
$ wget http://pwet.fr/content/download/71717/214904/file/image_variations.patch
$ cd /path/to/ez/publish
$ patch -p0 < /tmp/image_variations.patch

J'ai pas eu d'autres bugs bloquants (enfin je les ai pas encore remarqué :)), j'en ai d'ailleurs découvert un sur le SmartCacheClear avec les keywords, la correction est dans le rapport et tient sur une unique ligne.

La recherche universelle de Google même dans le code

Petite découverte aujourd'hui en cherchant un peu par hasard mysql_num_rows dans Google, puisqu'on peut y voir un petit extrait de code PHP d'une application nommée eNdonesia (d'ailleurs le fait d'avoir des mysql_query() et mysql_num_rows() perdus au milieu de HTML ne donne pas très envie mais c'est une autre histoire...).

Je savais que la recherche universelle était en place depuis un moment, mais c'est la première fois que je vois des morceaux de Google Code Search au milieu des résultats et pourtant des recherches portant sur du code j'en fais régulièrement. En regardant les autres moteurs sur la même recherche, il est amusant de constater que Yahoo! remonte en dixième place une page avec le célèbre warning "Warning: mysql_num_rows(): supplied argument is not a valid MySQL result" qui est certes répèter un bon nombre de fois. Les résultats sur Live sont encore plus surprenants, puisque ce dernier sort une page du même genre en neuvième position mais chose étonnante, il faut aller en troisième page pour trouver une page de PHP.net et encore ce n'est pas la bonne ! Google a semble t il encore un bonne longueur d'avance !

eZ Conference 2008

La semaine dernière se déroulait l'eZ Conference 2008 à Skien en Norvège autour du CMS Open source eZ Publish. Cette année, la conférence se déroulait en même temps que l'Open Nordic.

Beaucoup de nouveautés et pas mal de retours intéressants sur de gros projets ont été présentés cette année à l'eZ Conférence 2008. D'un point de vue produit, eZ Systems dirige ses développements sur 2 axes :

  • amélioration de ce qu'on peut appeler le socle eZ Publish (correction des bugs, amélioration des performances, ...)
  • amélioration de l'expérience utilisateurs avec des nouveaux produits autour d'eZ Publish (eZ Flow, nouvel Online Editor, ...)

La grosse nouvelle est la mise à jour majeure de la roadmap d'eZ Publish par rapport au dernier developer day et les décalages de planning qui vont avec ;-)

La roadmap eZ Publish

La grosse nouveauté concerne le développement des nouvelles versions d'eZ Publish. En effet celui ci va se poursuivre sur 2 branches distinctes :

  • la branche 4.x
  • le projet V (la branche 5.x)

La branche 4.x se focalisera en plus des corrections de bug, sur des améliorations de performances avec la base de code actuelle. Cette version conservera en particulier le moteur de template actuel. Le but de cette branche est de conserver la compatibilité ascendante. Il semble que le principal soucis au niveau de l'intégration du composant Template des eZ Components soit le système d'override.

La branche 5.x (project V) vise à réécrire quasi complètement le noyau sous forme de micro kernel avec un maximum de fonctionnalité sous forme d'extensions. Il sera par exemple possible d'écrire son propre moteur de stockage pour par exemple se passer du versionning ou pour gérer de manière fine les données stockées dans eZ Publish.

À plus court terme, la sortie de la 4.1 est une question de semaines, elle comprendra :

Pour ces derniers bugs, le dernier obstacle est l'écriture d'un script pour tenter de récupérer un maximum de données.

Les versions 4.2 et suivantes vont voir apparaître les fonctionnalités suivantes :

  • Les object states permettant de faire des processus complexes de publication plus facilement.
  • Support de IIS et MS SQL pour l'hébergement avec PHP en fastcgi avec comme but 80 à 90% des performances d'un serveur Linux
  • Des plugins OpenOffice et MS Word permettant d'éditer des objets directement depuis ces traitements de texte
  • L'intégration d'un CSS Editor.

Les démonstrations de ces deux derniers produits étaient assez impressionnantes. Les plugins des traitements de texte permettent de parcourir et d'éditer directement depuis le logiciel les objets du site et de les sauvegarder sans passer par un export puis un réimport dans le backoffice. Le CSS Editor permet lui d'éditer la feuille de style directement depuis son navigateur. Ce produit est déjà en fonctionnement sur une usine à sites où les administrateurs de chaque site ont la possibilité de changer légèrement la mise en page (couleurs, images de fond, police, ...)

Quelques projets intéressants

eZ Publish est de plus en plus employé pour de gros sites que ce soit en terme d'audience, de volumétrie ou de technicité. Par exemple eZ Publish est utilisé sur Sport24.com (site que je connais bien :)), Europe1.fr ou Car and Driver sites à fort trafic où sont utilisées différentes techniques pour tenir la charge comme le mode cluster, de la prégénération statiques avec des SSI ou les ESI avec Akamaï (ou bientôt Varnish). En terme de volumétrie, Première remporte probablement la palme avec 700 000 objets de contenus. En terme de technicité nous avons pu assister à la présentation d'un projet de banque d'images avancée pour SanomaWSOY mettant en oeuvre eZ Publish avec eZ Find pour l'indexation de 400 000 images et de leurs meta données XMP.

Checkout SVN avec Eclipse

169% de CPU et 21% de la mémoire (!), ça fait mal, à se demander ce qu'il peut bien faire avec tout ça... Spéciale dédicace à Simon :p

Tags : Humeurs, Travail, Blog, PHP, SVN

Les nouveautés de PHP6

Vu sur l'IBM Developer Works un court et synthétique article sur les nouveautés attendues dans PHP6, encore plus en bref :

Il est dommage que ce passage ne soit pas l'occasion de refondre l'API pour y apporter une cohérence regrettée...

Tags : XML, PHP, Web

Flux RSS des billets

Flux RSS des billets

Rechercher sur pwet.fr

À retenir

Derniers commentaires

Archives

Nuage de tags

Bioutifoul photos

Quelques liens

Licence d'utilisation

Contenu sous Licence Creative Commons By-Sa

Sauf mentions spécifiques, les billets et les photos publiés sur ce site sont placés sous la licence Creative Commons by-sa.

Pour toute utilisation dépassant le cadre de cette licence, merci de me contacter par e-mail.