Magento, à mon avis, représente un système PHP qui est construit sur des principes de codage bien pensés - les modèles de conception réutilisables étant l'un d'entre eux. En termes d'exemple de système PHP, je pense qu'il peut être considéré comme assez avant-gardiste et donc digne d'être considéré d'un point de vue architectural.
D'après ce que je comprends, il existe de nombreux modèles de conception à la disposition du développeur OOP. Le fait de voir ces patrons utilisés dans un système open-source tel que Magento permet au développeur de voir des exemples de ces patrons en utilisation réelle et in situ, plutôt que dans des exemples qui peuvent parfois être plutôt achedémiques, et même un peu trompeurs.
À ce titre, je me demande quels modèles, autres que ceux que j'ai énumérés ci-dessous, les programmeurs de Magento ont utilisés lors du développement pour Magento.
Je comprends que certains de ces modèles sont en place parce qu'ils sont construits sur le Zend Framework, MVC / Front Controller étant deux d'entre eux,
Les plus évidentes sont :
Usine :
$product = Mage::getModel('catalog/product');
Singleton :
$category = Mage::getSingleton('catalog/session');
Registre :
$currentCategory = Mage::registry('current_category');