Différence entre / Contrôleur et / Contrôleurs


43

Une question que je voulais poser depuis des siècles, plus théorique qu'autre chose.

Je connais parfaitement le développement d'extensions à l'aide de la structure de fichier de module Magento normale. J'ai remarqué cependant que certaines "extensions" de Mage contenaient un répertoire / Controller. Quel est le but de ces contrôleurs et en quoi diffèrent-ils de ceux utilisés normalement dans le répertoire / controllers?

Je peux voir que les noms sont structurés différemment, alors je suppose qu'ils sont chargés automatiquement de manière différente, mais à quoi servent les classes / Controller?

Merci a tous

Réponses:


45

La différence réside dans le chargement automatique, comme vous l'avez mentionné. En général, les fichiers contenus dans / Controller sont des classes abstraites (ou parent) dont les classes de / controllers héritent .

Magento n'est pas conçu pour connaître le répertoire / Controller - c'est davantage une question de convention. Les noms de classe indiquent où trouver ces parents sur le disque et l'autochargeur les localise. Vous verrez ceci dans Mage_Sales:

class Mage_Sales_OrderController extends Mage_Sales_Controller_Abstract

Ici, le module de vente localise les contrôleurs internes app/code/core/Mage/Sales/controllerset le contrôleur chargé indique à l'autochargeur de localiser son parent app/code/core/Mage/Sales/Controller.

Ceci est fait pour séparer les problèmes et permettre aux classes de contrôleurs concrètes d'hériter des fonctionnalités communes.


Cela semble tout à fait logique et, maintenant que vous l'avez expliqué, cela semble plutôt évident! Merci Phil!
thebluefox
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.