Les coulisses du site
Nous avons utilisé de nombreux et fameux ingrédients pour construire notre nouveau site zend.com/fr :
Zend Platform 3 Enterprise Server
Zend Platform est le seul serveur d'applications PHP qui supporte les besoins de performance, de gestion, d'intégration et d'adaptation à la charge nécessaires aux entreprises utilisant PHP pour leurs applications PHP stratégiques. En savoir plus
Nous utilisons la Zend Platform pour :
- L'accélération via l'opcode cache - La Zend Platform fournit un excellent cache d'op-code qui permet d'accélérer l'exécution des scripts PHP ce qui permet d'améliorer sensiblement les temps de réponse.
- Cache dynamique de contenu - La Zend Platform offre la possibilité de mettre des pages entières en cache basées sur leur URL, mais aussi de ne cacher qu'une partie du contenu d'une page en utilisant son API. Nous utilisons le cache partiel de contenu sur le site pour réduire les temps de réponse tout en fournissant simultanément une expérience individuelle à l'utilisateur.
- Supervision - Nous avons configuré la Zend Platform pour superviser différents événements PHP afin de pouvoir répondre pro-activement aux bugs et éviter les goulets d'étranglement.
- Zend Download Server - La Zend Platform peut intercepter les appels à des fichiers dont la taille dépasse celle que nous avons configurée. Ces requêtes sont directement transférées vers le serveur Apache pour ne pas impacter les performances.
Zend Core
Zend Core est le stack de production PHP 5 leader, qui fournit les capacités améliorées et certifiées, avec le support et les services nécessaires aux professionnels pour le développement et la production PHP.
En savoir plus
- PHP 5.2 - La version PHP la plus fiable, robuste et rapide. Zend certifie que cette version est optimale pour les environnements de production. PHP 5 supporte la programmation orientée objet, l'intégration des services web, du XML et bien d'autres fonctionnalités.
- Apache 2.2 - Le plus populaire des serveurs web.
- MySQL 5.0 - La base de données MySQL® est devenue la base de données la plus populaire au monde grâce à ses performances en constante amélioration, sa fiabilité et sa facilité d'utilisation. Elle est utilisée sur plus de 11 millions d'installations, des plus grandes entreprises aux applications embarquées spécialisées. Zend Core inclut une redistribution binaire de la dernière version de MySQL Community Edition pour des performances optimales et un processus d'installation simplifié.
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.
Environnement de développement Web (WDE) iBuildings.nl
Notre CMS (Content Management System) a été construit sur le WDE de iBuildings. iBuildings et Zend collaborent pour migrer leur CMS basé sur WDE vers PHP 5 et le Zend Framework et pourront, le cas échéant, le mettre à disposition de la communauté.
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.