Magento Custom Module Development

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 Envato

In 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:

Introduzione alla struttura MVC MVC

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.

Architettura MVC PHP

Nel modello MVC tipico, il flusso dell'applicazione è simile al seguente:

  1. C'è il punto di ingresso principale - index.php - da dove viene determinato l'intero meccanismo di routing dell'app.
  2. Sulla base di questo meccanismo di routing e del pattern URL richiesto, l'app chiamerà il controller appropriato.
  3. Il controller quindi chiama le viste appropriate.
  4. Infine, i file di visualizzazione raccolgono i dati dai file di modello e visualizzano i dati.

Magento MVC architecture

L'architettura MVC di Magento aggiunge alcuni livelli al pattern MVC, ma il flusso di controllo di base di un'applicazione è come questo:

  1. C'è il punto di ingresso principale - index.php - da dove verrà inizializzata l'intera app.
  2. La base sull'indirizzo URL richiesto verrà chiamata il controller appropriato. 
  3. Controller definisce le pagine e carica i file di layout per tali pagine.
  4. I file di layout indicano ai controller che bloccano i file da utilizzare.
  5. I file bloccati raccolgono i dati dai modelli e dai file degli helper e li passano ai file dei modelli.
  6. I file di modelli ricevono dati e rendono html.

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".

Prima di iniziare con i moduli

  • Suppongo che tu abbia già una copia funzionante di Magento con la versione 1.7 o 1.7+ (altrimenti la versione non ha importanza in questa fase)
  • Disabilita la cache. Disabilitare la cache Vai su Magento Admin Panel> Sistema> Gestione cache> Seleziona tutto il tipo di cache dalle caselle di controllo a sinistra> Seleziona azione: disabilita dall'alto a destra dall'alto> fai clic su Invia.

La struttura di un modulo Magento

Pool di codici

Magento contiene tre tipi di pool di codici in cui risiedono tutti i moduli personalizzati e core di Magento. 

  1. I core pool contengono tutti i moduli core che sono forniti di default con un'installazione di Magento. Questi moduli sono scritti dagli sviluppatori Magento. Si consiglia di non modificare questi moduli perché ogni volta che si aggiorna l'installazione di Magento, tutti i moduli principali verranno sovrascritti e le modifiche andranno perse.
  2. I pool di comunità contengono tutti i moduli, ovvero moduli personalizzati, sviluppati da programmatori di terze parti per essere installati tramite Magento Connect. Questi moduli generalmente estendono i moduli principali e offrono le proprie funzionalità che possono essere spesso utilizzate ovunque in Magento.
  3. I pool locali contengono tutti i moduli personalizzati che verranno utilizzati per un determinato progetto ma che non vengono letti in Magento Connect

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:

  • blocchi contengono funzioni utilizzate per visualizzare i dati nei modelli.
  • Modelli contenere la logica aziendale dei moduli.
  • Modelli di risorse contiene funzioni utilizzate per l'interazione con il database.
  • Controller definisce il layout di pagina e blocca i file e vengono caricati quando viene richiesto un URL.
  • eccetera contiene file di configurazione in formati XML che indicano a Magento quanti moduli di file hanno e come il modulo interagisce.
  • Helpers contengono funzioni utilizzate per definire una logica aziendale comune (come ridimensionamento immagine, convalida). Queste funzioni possono essere utilizzate in qualsiasi punto dell'applicazione Magento
  • sql contiene script SQL per creare, modificare o eliminare tabelle SQL.

Denominazione del modulo

Dobbiamo dare un nome al nostro modulo. Generalmente, i nomi dei moduli Magento sono composti da due parti: _La migliore pratica per dare un nome a un modulo Magento è scegliere 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.

Impostazione del codice e configurazione

 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 / moduleselencoQuesta 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.

Per iniziare: sviluppo

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 / etce creare a config.xmlfile che conterrà il seguente contenuto

    0.1.0       standard  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/mymoduleyoursitename.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 localie creare file IndexController.phpcon 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/indexstamperà "Ciao tuts + World". Fantastico: abbiamo finalmente finito con il nostro primo modulo Hello World.

Dispatch controller

Qui abbiamo esteso la classeMage_Core_Controller_Front_Actionche 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 classe Mage_Core_Controller_Front_Actionrisiede in posizione Mago> Core> Controller> Front> Action.php

Vedi 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).

  • tag = Chiragdodia_Mymodule (abbiamo definito questo tag in config.xml)
  • Azione NomeControllore = Indice
  • Controller di azione seguito da controllore 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 sottostante
yoursite.com/index.php/frontendname/actionControllername/actionmethod

  • frontendname = mymodule
  • actionControllername = Indice
  • actionmethodname = Indice

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

  • frontendname = mymodule
  • actionControllername = Indice
  • actionmethodname = test

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.

Qual'è il prossimo?

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.

Hai bisogno di aiuto extra?

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:

1. Magento All-in-One (sviluppo sito completo / personalizzazione)

Ottieni un sito Web Magento o richiedi personalizzazioni avanzate come:

  • modifica del layout 
  • modifica dei cursori 
  • menu personalizzato 
  • risolvere problemi di risposta 
  • e altro ancora

2. Sviluppo del modulo Magento e sviluppo del sito

Questo provider eseguirà una delle seguenti azioni:

  • sviluppare un modulo personalizzato
  • installa un tema Magento
  • personalizza con il tuo design dell'identità (logo, colore, carattere, sfondo) 
  • crea le tue prime 20 categorie / sottocategorie 
  • impostare pagamenti e valute locali 
  • e altro ancora

3. Personalizzazione del tema Magento

Ottieni il tuo tema Magento personalizzato a un prezzo ragionevole in un solo giro di un giorno.

4. Sviluppo, installazione, estensione e lavoro su temi di Magento

Questo provider offre una gamma di servizi Magento, tra cui:

  • sviluppo web personalizzato di Magento 
  • responsive siti Magento 
  • sviluppo personalizzato del tema Magento 
  • sviluppo del modulo 
  • sviluppo del carrello 
  • integrazione sicura del gateway di pagamento

Se queste soluzioni non sono giuste per te, prova una delle decine di altre disponibili su Envato Studio.