Quelques liens en vrac

Encore quelques liens glanés ci et là; ça va finir par devenir le rendez vous du jeudi midi, enfin ce n'est que la deuxième fois ;-)

Au menu, performances, php, une radio geek et développement d'applications mobiles :

Sortie de eZ Feed Parse 0.1

eZ Feed Parse est une extension eZ Publish fournissant une fonction fetch permettant d'accéder dans un template aux données publiées dans un flux RSS ou ATOM. Cette extension interface le composant Feed des eZ Components et donc tous les formats supportés par ezcFeed sont accessibles.

Plusieurs autres extensions du même genre sont disponibles dans les contributions sur ez.no, mais il semble qu'elles utilisent toutes la classe eZXML qui a été retirée avec la sortie de la version 4.1 d'eZ Publish. Je l'utilise notamment dans la colonne de droite de ce site pour afficher quelques photos issues de Bioutifoul Photos.

Télécharger eZ Feed Parse 0.1

Comparaison de performances entre eZ Publish 4.0.1 et 4.1

C'est la saison des benchmarks autour d'eZ Publish :) Bertrand a fait une intéressante comparaison entre le mode cluster et le mode classique, suivi de près par un article sur ez.no mettant en évidence le gain apporté par le fameux Stale Cache dans la génération du cache de contenu. De mon côté, j'ai adapté les scripts de mon benchmark entre eZ Publish 3.10 et eZ Publish 4 pour comparer cette fois uniquement les performances sur une page en cache de ce site (/blog) avec eZ Publish 4.0.1, eZ Publish 4.1 sans optimisation et eZ Publish 4.1 avec un fichier config.php ; le but étant de déterminer le gain apporté par les différentes améliorations de performances pour un site sur un seul serveur.

Informations techniques

  • Serveur : une Dedibox v1 ancienne génération (processeur Via C7 à 2Ghz avec 1Go de RAM)
  • Logiciels : Apache 2.2.8, PHP 5.2.4 avec le module xcache, MySQL 5.0.51
  • Caractéristique de la page : la page fait les 3 requêtes SQL minimum (session, chargement des langues et détermination de la page concernée)
  • Test : plusieurs séries de 500 requêtes avec un concurrence de 2 réalisées avec l'utilitaire ab sur chacune des installations

Le fichier config.php :

<?php
define( 'EZP_USE_BUNDLED_COMPONENTS', true );
define( 'EZP_INI_FILEMTIME_CHECK', false );
?>

Résultats

Le résultat est plutôt spectaculaire. La simple mise à jour en 4.1 donne un gain de presque 30% dans la distribution d'une page en cache ! Avec la configuration ci-dessus dans le fichier config.php le gain est même de 50% ! Pendant les phases de tests, j'ai également constaté que la charge de la machine est bien plus faible. Comme d'habitude ces chiffres sont à prendre avec des pincettes, ils représentent le gain sur un site bien optimisé (enfin j'espère) sur un serveur bas de gamme. Un test sur un serveur plus haut de gamme serait vraiment intéressant.

eZ Conference 2009 aura lieu à Paris !

Qu'on se le dise, la eZ Conference 2009 se tiendra à Paris les 25 et 26 juin 2009 ! La ville de Skien en Norvège où se tenait habituellement cet évènement est plutôt sympa et dépaysante mais pour nous européens du sud mais pas vraiment facile d'accès. On peut également espérer un plus grand succès de cet évènement consacré à eZ Publish et à tout ce qui tourne autour (eZ Components, PHP, MySQL, et la publication sur le web en général).

Étude du Planet eZ Publish.fr (2/3) : modules/vues et templates

Suite de la série de billets sur la réalisation du Planet eZ Publish.fr avec dans celui ci quelques notes sur les modules/vues spécifiques ainsi que sur la réalisation des templates.

I. Organisation et Import des articles
II. Modules/vues sur mesure et templates
III. Performances : caches et compagnie

Modules / vues sur mesure

Pour le moment, seuls deux vues spécifiques sont utilisées sur le site.

feed/planet

Cette vue sert à générer le flux RSS du Planet. Comme pour l'import RSS, le composant Feed des eZ Components est utilisé. L'intérêt principal par rapport à l'export RSS de base est la possibilité d'ajouter la balise dc:author avec le nom du site (l'objet parent dans le cas du Planet). Cette vue implémente également un système de cache sur le même principe que le cache de vue. Ce cache est vidé et est re-généré par le script d'import RSS alors que le cache de l'export RSS par défaut expire au bout d'un temps fixe.

planet/search

Cette vue reproduit la vue de recherche par défaut en forçant la recherche dans une sous-arborescence sans avoir besoin de passer le paramètre SubTreeArray. Contrairement à content/search, elle permet également l'utilisation des persistent variables comme sur content/view.

Templates et opérateur

Les templates pour ce site sont assez classiques et plutôt simples compte tenu de la charte graphique basique. Seule « astuce », chaque vue full fixe deux entrées dans les persistent variables ce qui permet de générer un titre et une description pertinents sans aucun fetch supplémentaire dans le pagelayout qui serait synonyme de requêtes SQL et/ou de cache supplémentaire à gérer (voir les dernières lignes du template planet.tpl et les premières du pagelayout.tpl par exemple).

Le seul opérateur spécifique est l'opérateur clean_rewrite_xhtml utilisé à la place de l'opérateur wash pour afficher les attributs Text block contenant le texte issu des flux RSS. Cet opérateur a plusieurs fonctions :

  1. rendre valide le code XHTML avec le module PHP Tidy
  2. réécrire les éventuels URLs relatives à site (images et liens)
  3. supprimer toute trace de Javascript grâce à quelques expressions XPath.

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.