Développer de nouvelles fonctionnalités dans Magento L'architecture de Magento

L'un des grands atouts de Magento, c'est la qualité de son architecture. Elle offre une souplesse remarquable, tout en garantissant une excellente fiabilité par son approche modulaire.

L'optimisation des performances d'un site sous Magento passe par une bonne exploitation de l'architecture

Attention : Comprendre l'architecture et le fonctionnement de Magento prend du temps et requiert une bonne maîtrise de la programmation orientée objet. Le développement de nouvelles fonctionnalités peut être très rapide pour un expert. Il peut aussi se transformer en cauchemar pour ceux qui ne prennent pas le temps de comprendre le coeur de l'application.

L'optimisation des performances d'un site sous Magento passe avant tout par une bonne exploitation de l'architecture. Il n'est pas rare de multiplier par 4 ou 5 le temps de réponse total d'une page en codant "à la va-vite". Par exemple, l'utilisation abusive (et pourtant fréquente) de la méthode
Mage::getModel() dans le rendu des pages (classes de type Block et fichiers de templates) est un gouffre pour les ressources du serveur, alors que Magento propose une approche parfaitement optimisée dans ses modèles métier.


figure 19.1. architecture globale de magento.
Figure 19.1. Architecture globale de Magento. © Pearson

Magento est une application Web écrite avec le langage PHP. Son noyau repose sur Zend Framework et en exploite toutes les possibilités.

Au-dessus de Zend Framework, vient s'ajouter une quantité de librairies, dont la plus importante est Varien Library. Elle complète le Zend Framework par des fonctions génériques essentielles.

Puis, vient le noyau de Magento lui-même (le Magento core) qui utilise à la fois Varien Library et Zend Framework (voir Figure 19.1).