Differenza tra / Controller e / controller


43

Una domanda che intendevo porre da secoli, più teorica di ogni altra cosa.

Sono pienamente esperto nello sviluppo di estensioni utilizzando la normale struttura di file del modulo Magento. Ho notato però quando osservo alcune delle "estensioni" di Mage, che alcune contengono una directory / Controller. Qual è lo scopo di questi controller e in che modo differiscono da quelli usati normalmente nella directory / controller?

Vedo che i nomi sono strutturati in modo diverso, quindi sto raccogliendo che vengono caricati automaticamente in un modo diverso, ma a che scopo servono le classi / Controller?

Ringrazia tutti

Risposte:


45

La differenza sta nel caricamento automatico, come hai già detto. In generale, i file che si trovano in / Controller sono classi astratte (o parent) da cui ereditano le classi in / controller .

Magento non è progettato per essere a conoscenza della directory / Controller - è più una questione di convenzioni. I nomi delle classi suggeriscono dove trovare questi genitori sul disco e il caricatore automatico li individua. Lo vedrai in Mage_Sales:

class Mage_Sales_OrderController extends Mage_Sales_Controller_Abstract

Qui, il modulo di vendita individua i controller all'interno app/code/core/Mage/Sales/controllerse il controller caricato dice al caricatore automatico di localizzare il suo genitore app/code/core/Mage/Sales/Controller.

Questo viene fatto per fornire la separazione delle preoccupazioni e per consentire alle classi di controller concrete di ereditare funzionalità comuni.


Questo ha perfettamente senso e, ora che l'hai spiegato, in realtà sembra abbastanza ovvio! Grazie Phil!
thebluefox il
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.