Zend - The PHP Company


Les coulisses du site

Nous avons utilisé de nombreux et fameux ingrédients pour construire notre nouveau site zend.fr :

Zend Server et Zend Platform

Nous utilisons Zend Server et Zend Platform pour faire fonctionner et gérer zend.com, notre base de connaissance, nos forums et notre boutique en ligne. Voici pourquoi :

  • Accélération via le cache d'opcode - Zend Server inclut Zend Optimizer+ qui fournit un excellent cache d'opcode et une accélération pour PHP.
  • Cache de contenu dynamique - Zend Server et Zend Platform offrent la possibilité de cacher des pages entières basées sur l'URL, ou pour cacher des pages partiellement en utilisant leur API. Nous avons implémenté le cache partiel pour notre boutique en ligne afin de réduire les temps de réponse tout en étant à même de fournir une excellente expérience utilisateur.
  • Monitoring et résolution des problèmes PHP - Nus avons configuré Zend Server et Zend Platform afin de monitorer une large palette d'événements PHP et pouvoir ainsi répondre pro-activement aux bugs et aux goulets d'étranglement. Utiliser les données contenant les causes que Zend Server capture nous permet d'isoler et de résoudre rapidement les problèmes.
  • Zend Download Server - Zend Server et Zend Platform peuvent intercepter les appels aux fichiers qui sont plus volumineux qu'une taille que vous aurez déterminée. Décharger ces appels directement vers Apache accélère les performances.

Zend Framework

Zend Framework est désormais le socle de notre site basé sur PHP. Zend Framework est basé sur la simplicité, les meilleures pratiques de l'orienté objet, un modèle de licences adapté aux entreprises et un code agile rigoureusement testé. Tout cela pour se concentrer sur la construction d'applications Web 2.0 plus sécurisées et plus fiables.

Le Zend Framework élimine les détails ennuyeux de la programmation en PHP et nous a permis de nous focaliser sur un scope plus large. Grâce à cela, notre application fût prête bien avant  la date prévue au départ. La force du Zend Framework réside dans sa flexibilité, sa grande modularité et son support MVC qui a rendu notre code plus fiable, réutilisable et plus facile à maintenir.

Pour en apprendre davantage sur ce que nous appelons la plateforme PHP du futur, allez sur http://framework.zend.com.

Les composants suivants ont été utilisés. Leur utilisation est brièvement expliquée ci-après :

  • Zend_Cache - un composant simple et flexible que nous avons utilisé pour accélérer l'accès aux données et qui inclut le support de multiples solutions de cache en front et en back end (pour lequel nous avons utilisé la Zend Platform pour le back-office, voir le détail dans le paragraphe suivant). Ce composant nous a également servi à manipuler nos données en cache.
  • Zend_Config - Bien que le Zend Framework ne nécessite pas de configuration , il est néanmoins souvent nécessaire de pouvoir spécifier certaines options à l’échelle de l’application. Zend_Config fournit de multiples mécanismes pour stocker les configurations, ainsi qu’une interface conviviale pour y accéder. Nous stockons la configuration dans de simples tableaux PHP qui sont ensuite exposés par Zend_Config.
  • Zend_Controller – Zend_Controller est au coeur de l’implémentation MVC (Modèle-vue-contrôleur) du Zend Framework. Il comprend un assistant flexible et une architecture par plug-in qui permet la personnalisation du workflow dans différents niveaux de l’application. Ce site utilise les contrôleurs pour réaliser tout type d’actions, allant des requêtes de services web à la vérification des droits d’accès.
  • Zend_Db et Zend_Db_Table -  est une implémentation classique des motifs de conecption « Table Data Gateway » et de « Row Data Gateway », permettant un accès facile et intuitif aux tableaux et aux lignes des bases de données, ainsi qu’un point d’entrée pour la logique métier qui englobe nos données.
  • Zend_Feed –  permet la consommation et la création de flux RSS et Atom. Nous l’avons utilisé sur le site pour afficher les informations de la « Zend Developer Zone », ainsi que pour créer nos propres flux RSS.
  • Zend_Http_Client - pour faciliter la migration du contenu du site en PHP 4, nous avons créé un proxy avec le Zend_Http_Client, qui nous permet de servir son contenu dans le nouveau site, et de partager l’authentification entre les deux sites.
  • Zend_Search_Lucene – Lucene est une technologie de recherche de ressources par indexation écrite à l’origine en Java ; Zend_Search_Lucene est une implémentation PHP qui lit et qui crée des index binaires compatibles avec Lucene. Nous avons créé un robot d’indexation avec Zend_Search_Lucene, ainsi qu’un front-end pour cet index.
  • Zend_View_Interface - Zend_View_Interface est le 'V' de l’architecture MVC du Zend Framework. Un des points forts qu’elle fournit est sa capacité d’implémenter différents moteurs de template. Ce site utilise cette fonction pour embarquer une version personnalisée de Smarty pour rendre les pages.
  • Zend_XmlRpc – les services web font partie intégrale du Zend Framework. Il comporte de nombreux clients de services web ainsi que des serveurs. Ce site crée et consomme des services XML-RPC avec Zend_XmlRpc.

Smarty (pour la gestion des templates)

Smarty est un moteur de templates pour PHP, qui facilite la séparation du code de l'application des calques de présentation du site. Smarty est très largement utilisé dans la communauté PHP.

Le système de gestion de contenu (CMS) utilisé pour zend.com a une version légèrement modifiée de Smarty, autour de laquelle nous avons implémenté une interface compatible avec le composant Zend_View du Zend Framework.