Lo sviluppo di moduli personalizzati Magento è una parte fondamentale di qualsiasi sviluppo Magento o progetto Magento, perché in qualsiasi fase potresti voler integrare la tua funzionalità / modulo nel tuo progetto Magento esistente.
In questa serie, tratterò i dettagli dello sviluppo del modulo personalizzato Magento.
Se vuoi andare oltre con lo sviluppo di Magento, controlla la vasta gamma di estensioni Magento utili su Envato Market.
Estensioni Magento sul mercato EnvatoIn questa serie mi riferisco a Magento Community Edition 1.7, sebbene le strutture dei moduli personalizzate siano le stesse in tutte le versioni di Magento. Prima di iniziare inizieremo lo sviluppo effettivo dei moduli, capiamo rapidamente la struttura di base di Magento.
Ogni volta che installi un nuovo Magento, noterai la seguente struttura di directory di Magento:
Come qualsiasi altro framework principale come Joomla, CakePHP, CodeIgniter, ecc., Magento segue anche l'architettura basata su MVC sebbene sia leggermente diversa dall'architettura PHP MVC di base. Qui spiegherò la differenza nell'architettura di Magento confrontandola con la semplice architettura MVC di PHP.
Nel modello MVC tipico, il flusso dell'applicazione è simile al seguente:
index.php
- da dove viene determinato l'intero meccanismo di routing dell'app.L'architettura MVC di Magento aggiunge alcuni livelli al pattern MVC, ma il flusso di controllo di base di un'applicazione è come questo:
index.php
- da dove verrà inizializzata l'intera app.Inizialmente, questo può essere difficile da capire poiché contiene alcuni livelli aggiuntivi. Per acquisire familiarità con il flusso del controllo, sviluppiamo un modulo personalizzato "Hello World".
Magento contiene tre tipi di pool di codici in cui risiedono tutti i moduli personalizzati e core di Magento.
Pertanto, abbiamo due tipi di pool: Community o Local. Dato che stiamo lavorando al nostro progetto, useremo un pool locale, sebbene non ci siano restrizioni sull'utilizzo del pool di comunità, sia.
Struttura
I moduli Magento sono costituiti dai seguenti componenti:
Dobbiamo dare un nome al nostro modulo. Generalmente, i nomi dei moduli Magento sono composti da due parti:
come autore o nome di una società e
come un vero nome del modulo.
Sulla base di questa convenzione di denominazione, sto dando il nostro modulo il Chiragdodia_Mymodule nome. Faremo riferimento a questo nome in questa serie.
Consente di creare le directory di base sulla struttura precedente. Vai alla direzione di installazione di Magento quindi naviga verso app / code / local
e creare le directory come mostrato di seguito.
Successivamente, configureremo e attiveremo il nostro modulo creando il file di configurazione Chiragdodia_Mymodule.xml
nel app / etc / modules
elenco. Questa directory contiene i file di configurazione per tutti i moduli.
vero Locale
Questo file dirà a Magento la posizione del nostro modulo. Nel attivo
tag, abbiamo specificato vero
per abilitare il nostro modulo. Se tutto è corretto finora, allora troverai il tuo modulo nel Pannello di amministrazione di Magento> Sistema> Configurazione> Avanzate> Avanzate> Disabilita uscita moduli elenco. Da qui puoi abilitare e disabilitare il tuo modulo.
Successivamente creeremo il nostro file di configurazione del modulo. Questo file dirà a Magento tutto del nostro modulo. Questo include quanti file contiene il nostro modulo, che tipo di file (modelli, helper, classi di database) e così via.
Vai a app / code / local / Chiragdodia / mymodule / etc
e creare a config.xml
file che conterrà il seguente contenuto
0.1.0 Chiragdodia_Mymodule mymodule
Esaminiamo riga per riga per capire ogni tag. Qui, il primo tag è
che contiene il nome e la versione del nostro modulo. Il numero di versione è molto importante quando si aggiorna il modulo per aggiornare il modulo.
Il
tag indicherà a Magento il controller inviato. Dentro il
tag, abbiamo definito
che dice a Magento come accedere ai nostri controller tramite il meccanismo di routing.
Nel
tag, abbiamo definito il nome del modulo in
tag e nome del frontend in
. Usando un nome di frontend, possiamo accedere al nostro modulo in frontend come yoursitename.com/index.php/mymodule/index
.
A chiamata yoursitename.com/index.php/mymodule
o yoursitename.com/index.php/mymodule/index
Magento cercherà l'azione indice del file controller del tuo modulo. Come tale, abbiamo bisogno di creare il nostro file di controller.
Vai a app / code / / / Chiragdodia mymodule / controllori locali
e creare file IndexController.php
con il seguente contenuto.
Nota che il nome e il nome di ogni file sono case sensitive in Magento È molto importante che tu stia attento a nominare il tuo lavoro quando crei file e classi.
Ora apri l'URL
yoursite.com/index.php/mymodule/index
stamperà "Ciao tuts + World". Fantastico: abbiamo finalmente finito con il nostro primo modulo Hello World.Dispatch controller
Qui abbiamo esteso la classe
Mage_Core_Controller_Front_Action
che contiene tutti i metodi che vengono utilizzati nel routing dell'URL. Il nome della classe Magento riflette la posizione del file di classe. Quindi la classeMage_Core_Controller_Front_Action
risiede in posizione Mago> Core> Controller> Front> Action.phpVedi il nome della classe del nostro controller che è
Chiragdodia_Mymodule_IndexController
. Il controller Magento deve essere nominato in modo che rifletta(
tag) _ (Action Controllername) (parola chiave Controller).
Chiragdodia_Mymodule
(abbiamo definito questo tag in config.xml
) NomeControllore
= Indicecontrollore
parola chiave Sulla base di questo modello, il nome del nostro controller è Chiragdodia_Mymodule_IndexController
Ora guarda lo schema URL che segue il modello di percorso sottostanteyoursite.com/index.php/frontendname/actionControllername/actionmethod
In base a questo modello di URL, l'URL del nostro modulo è yoursite.com/index.php/mymodule/index/index
. Puoi anche accedervi usando yoursite.com/index.php/mymodule
perché ogni volta che non hai specificato un ActionController
o actionmethod
nome, Magento carica il controller di indice e l'azione di indice per impostazione predefinita.
Ora creiamo un'altra azione: testAction
.
Possiamo accedere a testAction usando l'URL
yoursite.com/index.php/mymodule/index/test
.Come spiegato in precedenza qui
Ecco come funziona il controller in Magento.
All'inizio, può essere difficile capire tutto in una volta, quindi ho incluso tutto il codice sorgente in questo modulo in modo da poterlo rivedere e implementare il tuo lavoro mentre lo utilizzi come guida.
Nella parte successiva, inseriremo alcuni layout nel nostro modulo creando layout e file di blocco. Capiremo come funzionano i file di layout in Magento e quali sono i blocchi di ruolo nel contesto di Magento.
Fino ad allora crea il tuo modulo e fammi sapere di tutto ciò che ti causa problemi.
Se non sei ancora sicuro su come procedere dopo aver letto questo tutorial, prova a contattare uno degli sviluppatori Magento su Envato Studio. Possono aiutarti con tutti i tipi di problemi Magento, grandi e piccoli. Ecco alcuni esempi:
Ottieni un sito Web Magento o richiedi personalizzazioni avanzate come:
Questo provider eseguirà una delle seguenti azioni:
Ottieni il tuo tema Magento personalizzato a un prezzo ragionevole in un solo giro di un giorno.
Questo provider offre una gamma di servizi Magento, tra cui:
Se queste soluzioni non sono giuste per te, prova una delle decine di altre disponibili su Envato Studio.