eZ Publish : premières impressions
Voilà plus de deux mois que j’utilise eZ Publish pour les projets qui me sont confiés chez Metycea et je n’ai pas résisté à l’envie de partager mes premières impressions. Pour plus d’informations sur l’outil, n’hésitez pas à consulter le site officiel de l’éditeur : http://ez.no/fr/
Une première approche
Le CMS peut paraître relativement indigeste pour un grand nombre de développeurs non-avertis, tout simplement parce qu’eZ Publish c’est avant tout des centaines de fichiers et de dossiers… très bien organisés! Rassurez-vous, avec le temps on fini par s’y retrouver très facilement, d’autant plus que lors d’un développement lambda, vous passerez près de 90% de votre temps dans ces deux répertoires :
- design: contient ce qui touche de près comme de loin à l’élaboration de vos pages (html, css, js, images etc…) ;
- settings: fichiers de configurations (.ini).
Il faut savoir qu’eZ Publish fonctionne en Modèle-Vue-Contrôleur, où toutes les vues seront des templates facilement personnalisables à l’aide de surcharges (selon les cas) définies dans un fichier de configuration bien spécifique. Notez que cette logique s’applique aussi-bien en front qu’en backend.
Sous eZ Publish, tout est objet
La force du CMS réside dans sa conception même. Admettons que vous souhaitez créer un template de page simple qui comporte un titre principal, une description courte et un corps.
Pour commencer, il suffira de vous rendre dans le manager et d’y créer une classe de contenu nommée « page » (son type) composée des attributs cités précédemment (name, description, body) eux aussi typés (ligne de texte, bloc de texte, éditeur wysiwyg). On remarque une forte analogie avec le modèle objet des langages de programmation, c’est normal puisqu’il s’agit réellement d’une classe comme vous avez très certainement l’habitude d’en créer en PHP ou en JAVA. Ensuite, lors de l’intégration, il faudra simplement créer un fichier page.tpl (dossier design) qui réalise les différents traitements (à l’aide de templates operators) pour l’affichage de nos différents éléments (les attributs cités plus haut). Pour terminer, vous aurez besoin d’indiquer à la plateforme quel template utiliser pour les objets de type « page », le tout dans d’un fichier de configuration nommé overrides.append.ini.php (dossier settings). La procédure restera identique pour toutes les classes de contenu que vous aurez besoin de créer par la suite.
En résumé: Création de la classe de contenu » Intégration (template) » Ajout de la classe dans les settings.
Une histoire de cache !
Sous eZ Publish, vous vous apercevrez très vite que tout est fait pour optimiser votre temps de développement, mais en contre-partie, votre site pourra parfois afficher des délais de réponses trop élevés pour internet. Pour pallier à ce manque de réactivité, et en vue du grand nombre de fichiers de configuration et de templates que vous aurez besoin de créer pour vos futurs projets, eZ Publish va tout mettre en cache … ou presque. La conséquence d’un tel comportement ? Un temps de réponse optimal avec des pages qui s’affichent très rapidement (sauf au premier chargement des vues qui seront alors mises en cache). Du peu que j’ai pu constater, le framework va stocker certaines de vos règles de configuration (les fichiers ini), vos templates et les différentes références de vos images, des tailles pré-définies susceptibles d’être utilisées en front et/ou backend.
L’aide au développement
Pour vous accompagner dans vos différentes phases de développement, eZ Publish propose un mode de débogage qui vous permettra entre autres de dépister les petites comme les plus grosses erreurs. Cet outil s’avère très pratique lorsque le résultat d’un traitement n’est pas celui escompté en vous indiquant précisément l’origine de l’erreur. En plus de ça, il affiche le nom des templates utilisés pour vos pages, et pour ma part, c’est ce qui rend son utilisation incontournable. En effet, lorsqu’on débute (et même des semaines plus tard), on ne connait pas toujours le chemin complet des templates standards à surcharger pour nos besoins, grâce à cette aide, fini les longues minutes de recherche dans le répertoire des templates par défauts.
En conclusion
Avec le recul, on s’aperçoit vite qu’eZ Publish a tout ce qu’il vous faut pour mettre en place des sites administrables robustes et sécurisés. De base, il propose une large palette de classes de contenu modifiables à souhait. Bien entendu, comme nous venons de le voir, il est aussi possible d’en créer autant que vous le souhaitez en ne partant de rien. Il n’est pas nécessaire d’avoir de très lourdes connaissances en PHP, en effet, avec eZ Publish vous devrez vous familiariser avec les templates operators qui permettent de récupérer les informations d’un objet à afficher lors du développement de vos templates (titre d’une page, son contenu riche etc…). En revanche, si vous souhaitez développer des extensions, il faudra mettre les mains dans le cambouis. Fort heureusement, rien d’insurmontable et le site officiel propose de nombreux tutoriaux qui vous permettront d’arriver à vos fins.
Il faudra faire avec le cache, ne pas oublier de le désactiver lors de vos développements et surtout le vider régulièrement, sans oublier d’utiliser le mode de débogage et ainsi vous faire gagner un temps précieux.
Pour ma part, à l’heure où je rédige cet article je suis en plein dans mon 4me projet sous eZ Publish, je me rend compte sans grande surprise qu’il n’y a vraiment pas de limites. eZ Publish est développé de tel sorte que vous pourrez réellement faire de l’outil ce que vous en voulez!
Quelques liens utiles :
Installation de l’extension APC
APC (pour Alternative PHP Cache), est une extension PECL tout simplement destinée à accélérer l’exécution de vos scripts PHP de votre serveur.
En réalité, APC va mettre en cache les fichiers PHP pré-compilés, et les réutiliser par la suite. Les gains en performances sont impressionnants! Pour cet article, nous allons simplement voir comment installer cette extension sur votre serveur, car il nous servira pour le développement d’une barre de progression en AJAX pour l’upload de vos fichiers via PHP.
Pré-requis:
- Un serveur avec une distribution Linux installée (personnellement j’utilise UBUNTU) ;
- Apache2 avec PHP5 d’installé en module ;
- Des droits suffisants (et oui…).
1. Phase d’installation
Tout d’abord, on commence par installer les paquets suivants:
- php-pear (pour utiliser pecl) ;
- php5-dev (pour installer la commande phpize nécessaire pour le script d’installation d’APC) ;
- apache2-threaded-dev (pour apxs2, création de modules pour apache).
Ensuite, comme normalement tout s’est bien déroulé, on lance la commande suivante:
pecl install apc
qui aura pour effet d’installer l’extension APC, mais je pense que vous l’aviez déjà deviné.
2. Phase de configuration
Une fois que tout est installé, il faut tout configurer, c’est l’une des bases fondamentales sous Linux, et mis à part son prix (gratuit) c’est ce qui fait sa force au sein de la communauté des développeurs, sous Linux tout est configurable à souhait!
On commence par se rendre dans php.ini (sur mon serveur /etc/php5/apache2/) pour y apporter quelques modifications. Ajoutez les lignes suivantes, personnellement, je les ai ajouté à la fin de mon fichier:
extension=apc.so [APC] apc.enabled = 1 apc.rfc1867 = On apc.shm_size = 64M apc.max_file_size = 100M
Puis, modifiez les lignes suivantes, faites bien attention à respecter la valeur de « apc.max_file_size »:
upload_max_filesize = 100M post_max_size = 100M
Si vous avez bien suivi, ces lignes nous préparent à l’upload de gros fichiers… vous commencez à voir une autre utilité de l’installation de cette extension? Voilà, tout est correctement installé et configuré, il ne nous reste plus qu’à redémarrer apache!
/etc/init.d/apache2 restart
3. Phase de vérification
On en profite pour vérifier que l’extension soit bien installée, on réalise un petit fichier PHP contenant la très célèbre et bien utile ligne de code:
<?php phpinfo ();?>
La section APC apparaît avec toutes les propriétés liées à son utilisation… mais ça ne nous suffit pas, on en voudrait encore plus! Les développeurs de cette extension ont été bien sympa, et ont réalisé un fichier bien pratique nous permettant de consulter le contenu du cache, avec tout un tas d’informations utiles portant aussi bien sur ses paramètres que sa vitesse … bref je vous laisserai découvrir toutes ses fonctionnalités à votre rythme.
On cherche le fichier apc.php, puis on crée un lien symbolique histoire d’y avoir accès depuis notre serveur à l’aide d’un navigateur:
find / -type f -name apc.php ... ln -s /votrechemin/apc.php /var/www/apc.php
Normalement, le fichier se trouve dans /usr/share/php/.
Bien évidement la lecture de ces informations étant privée, il faut éditer le fichier apc.php pour y ajouter votre login et votre mot de passe, ils se trouvent dans les premières lignes de ce dernier.
NB: Pensez à mettre à jour votre APC, il y a de grandes chances pour qu’il ne le soit pas lors de son installation en ligne de commande. Je ne vais pas développer ici la méthode pour le faire, mais depuis la page apc.php, il y a un onglet de mise à jour qui indiquera si votre version est dépassée ou non, et le cas échéant, vous redirigera vers le site des développeurs.
Avec la version de PHP6, cette extension sera incluse nativement dans le moteur ZEND et nous évitera ainsi cette fastidieuse liste de manipulations à réaliser pour faire tourner cette extension que je trouve plus que nécessaire aujourd’hui!


