Evènements Web

Symfony et eZPublish : embarquement immédiat

0

Cet article résume la conférence qui s’est tenue lors du Symfony Live 2013 Paris, relative à la nouvelle version du CMS bien connu eZ Publish.

 

@jeanvoye a commencé sa présentation par poser une question simple : « Qui a déjà travaillé avec eZ 3.x ou eZ 4.x ? » Et à ceux qui ont répondu positivement, il leur a simplement dit « eZ 4.x n’est plus eZ Publish, eZ Publish est désormais eZ 5 ».

Pour sa nouvelle version eZ Systems, éditeur d’eZPublish, a voulu se recentrer sur son cœur de métier à savoir la gestion de contenu et l’expérience utilisateur tout en gardant une architecture scalable et durable.

(Note : Durable comme la version précédente qui est opérationnelle depuis 10 ans)

 

Plusieurs pré-requis étaient indispensables pour la conception de cette nouvelle version comme :

  • une intégration simple d’une API ;
  • un modèle HMVC (Hierarchical Model View Controller), donc pas de logique dans les vues, contrairement aux versions 4.x et antérieures ;
  • un nouveau moteur de template ;
  • des composants découplés.

 

Pour répondre à toutes ces attentes, plusieurs choix ont été étudiés. Parmi ces possibilités figuraient notamment :

  • un framework fait maison
  • Zeta Component
  • Zend Framework
  • Symfony 2

 

Et finalement pour sa version 5 d’eZ Publish, c’est le framework PHP Symfony2 dans sa version intégrale qui a été retenu, ccontrairement à Drupal qui dans sa dernière version (v 8) utilise seulement des composants Symfony 2.

 

Les développeurs d’eZ Publish se sont lancés dans un véritable challenge, car ils ont voulu, entre autres, conserver la même structure que eZ 4.x, mais également le système de templating et le fallback au niveau du routage.

Ce chalenge a été relevé avec succès, car eZ Publish 5 permet une entière rétrocompatibilité avec les versions 4.x en incluant directement ce dernier et en utilisant un système de route dynamique qui fait le passage entre les deux versions en fonction du contexte, la base de donnée restant la même pour les deux. Cette fonctionnalité permet une grande souplesse d’utilisation et d’évolutions pour les sites existants en version 4.x. Les nouveaux développements à apporter sur ces sites pourront alors se faire en eZ 5 et l’interfaçage entre les deux ne posera aucun problème.

 

Cette fusion permet à la fois à SensioLabs de confirmer son statut d’acteur majeur de la communauté PHP Open Source, et également à la communauté Symfony de s’agrandir encore plus (ce fut déjà le cas avec la communauté Drupal).

 

Pour conclure en quelques mots sur cette nouvelle version de eZ Publish , elle se présente comme une application Symfony 2 standard + des bundles (API Rest) + un BackOffice pour gérer le contenu.

D’ailleurs la flexibilité du back-office est conservée, on pourra donc le modifier et y apporter des fonctionnalités/des interfaces spécifiques à chaque projet.

Concernant les versions actuelles et à venir, la version 5.0 est disponible depuis novembre 2012, la version 5.1 est prévue pour mi-mai et la version 5.2 est quant à elle prévue pour novembre 2013.

 

Redis – Your advanced in-memory key-value store par Jordi Boggiano

0

 

Lors de sa conférence, Jordi Boggiano nous a présenté Redis, un « store » de type clés-valeurs mono-threadé. Ce projet open source soutenu par VMWare commence à faire des émules sur le web et de nombreux posts et articles y font référence.

Redis ressemble à Memcached : Le stockage des données se fait en mémoire afin de pouvoir obtenir des vitesses de lecture et d’écriture très rapides et ainsi de pouvoir gérer un très grand nombre d’opérations par seconde. Les opérations sont atomiques permettant d’éviter les risques de concurrence de données.

Un des inconvénients de Memcached est que les données ne sont sauvegardées qu’en mémoire : si l’instance Memcached plante, les données sont perdues. Redis répond à cette problématique en sauvegardant régulièrement les données sur le disque au moyen d’un dump régulier ou d’un journal de log, et au moyen d’options de paramétrage assez nombreuses.

Redis gère les types de données basiques de tous les langages. Il permet ainsi de gérer les valeurs de type string, integer, hash, list et set. Il est possible de donner une durée d’expiration à ces valeurs mais également de réaliser des opérations basiques sur celles-ci comme incrémenter ou décrémenter une valeur, trier un set, ajouter une valeur à une liste déjà  existante, etc…

Redis possède également une API Pub/Sub (Publish/Subscribe) permettant d’envoyer et de recevoir des messages sur des « channels ».

Afin de permettre de gérer un nombre croissant d’accès en lecture (et ainsi de garantir une montée en charge de l’application) ou bien d’obtenir une redondance des données, Redis gère l’architecture maître-esclave en garantissant une réplication rapide des données entre l’instance maître et les  instances esclaves attachées.

Redis peut donc répondre à plusieurs usages.
En tout premier lieu, il constitue une réelle alternative à Memcached afin de mettre en cache vos données grâce à une configuration plus aisée (particulièrement si vous souhaitez mutualiser le cache entre plusieurs serveurs) mais également grâce à son fonctionnement même qui vous permettra de ne pas perdre vos données en cas de redémarrage du serveur.
Redis peut également répondre à vos besoins si votre application nécessite des communications pseudo temps réel (application de chat par exemple) ou bien si elle nécessite la mise en place de queues de traitement.

De nombreux clients existent dans la plupart des langages (C, C++, C#, Java, PHP, Ruby, etc…) afin de permettre à votre application de communiquer facilement avec le serveur Redis et de tirer pleinement partie de ses possibilités.

Redis est un projet en constante évolution grâce à sa communauté active, ses performances (déjà équivalentes voire supérieures à Memcached) s’améliorent à chaque nouvelle version et de nouvelles fonctionnalités sont déjà prévues telles que le, très attendu, clustering.

A essayer de toute urgence !

 

En savoir plus :

Switch to our mobile site