Magento anpassad modulutveckling är en kärna del av varje Magento-utvecklings- eller Magento-projekt, eftersom du på något stadium kanske vill integrera din egen funktionalitet / modul i ditt befintliga Magento-projekt.
I denna serie kommer jag att täcka detaljerna i Magento anpassad modulutveckling.
Om du vill gå vidare med din Magento-utveckling, kolla in det stora utbudet av användbara Magento-tillägg på Envato Market.
Magento förlängningar på Envato MarketI hela denna serie hänvisar jag till Magento Community Edition 1.7, men anpassade modulstrukturer är desamma i alla versioner av Magento. Innan vi går ska vi börja den verkliga modulutvecklingen, låt oss snabbt förstå den grundläggande strukturen i Magento.
När du installerar en ny Magento kommer du att märka följande Magento katalogstruktur:
Liksom alla andra stora ramar som Joomla, CakePHP, CodeIgniter, etc. följer Magento också den MVC-baserade arkitekturen, men detta är lite annorlunda än den centrala PHP MVC-arkitekturen. Här ska jag förklara skillnaden i Magento-arkitekturen genom att jämföra den med enkel PHP MVC-arkitektur.
I det typiska MVC-mönstret är applikationsflödet något som detta:
index.php
- varifrån hela app routing mekanismen är bestämd.Magento MVC-arkitektur lägger till några lager till MVC-mönstret, men det grundläggande flödet av kontroll av en applikation är så här:
index.php
- varifrån hela appen kommer att initieras.Inledningsvis kan detta vara svårt att förstå eftersom det innehåller några extra lager. För att bli mer bekant med flödet av kontroll, låt oss utveckla en anpassad "Hello World" -modul.
Magento innehåller tre typer av kodpooler där alla anpassade och kärnmodulerna i Magento är bosatta.
Således har vi två val av pooler: Community eller Local. Eftersom vi arbetar på vårt eget projekt ska vi använda en lokal pool, men det finns inga begränsningar för att använda gemenskapens pool, antingen.
Strukturera
Magento-modulerna består av följande komponenter:
Vi måste ange vår modul. Generellt är Magento-modulnamnen gjorda av två delar:
som författare eller företagsnamn och
som ett aktuellt modulnamn.
Baserat på den här namngivningskonventionen ger jag vår modul den Chiragdodia_Mymodule namn. Vi kommer att referera till detta namn i hela serien.
Låter skapa kataloger baserar sig på ovanstående struktur. Gå till din Magento installationsriktning och navigera till app / code / local
och skapa kataloger enligt nedan.
Därefter kommer vi att konfigurera och aktivera vår modul genom att skapa config-fil Chiragdodia_Mymodule.xml
i app / etc / modules
katalog. Den här katalogen innehåller config-filer för alla moduler.
Sann lokal
Den här filen kommer att berätta Magento om placeringen av vår modul. I aktiva
tagg, vi har angivit Sann
för att aktivera vår modul. Om allt är korrekt hittills kommer du hitta din modul i Magento Admin Panel> System> Konfiguration> Avancerat> Avancerat> Inaktivera modulutgång lista. Härifrån kan du aktivera och inaktivera din modul.
Nästa kommer vi att skapa vår modulkonfigurationsfil. Den här filen kommer att berätta Magento allt om vår modul. Detta inkluderar hur många filer vår modul innehåller, vilken typ av filer (modeller, hjälpare, databasklasser) och så vidare.
Gå till app / code / local / Chiragdodia / Mymodule / etc
och skapa en config.xml
fil som innehåller följande innehåll
0.1.0 Chiragdodia_Mymodule mymodule
Låt oss gå igenom rad för rad för att förstå varje tagg. Här är den första taggen
som innehåller namnet och versionen av vår modul. Versionsnumret är mycket viktigt när det gäller att uppdatera modulen, uppdatera modulen.
De
tagg kommer att berätta Magento om den skickade kontrollenheten. Inuti
tagg, vi har definierat
som berättar Magento hur man får åtkomst till våra styrenheter via routemekanismen.
I
tagg, vi har definierat modulnamn i
tagga och frontend namn i
. Genom att använda ett frontendnamn kan vi komma åt vår modul i frontend som yoursitename.com/index.php/mymodule/index
.
Genom att ringa yoursitename.com/index.php/mymodule
eller yoursitename.com/index.php/mymodule/index
Magento letar efter indexåtgärder av din modulens kontrollfil. Som sådan måste vi skapa vår kontrollerfil.
Gå till app / code / local / Chiragdodia / Mymodule / controllers
och skapa fil IndexController.php
med följande innehåll.
Observera att varje fils namn och klassnamn är skiftlägeskänsliga i Magento. Det är väldigt viktigt att du tar hand om namnet på ditt arbete när du skapar filer och klasser.
Öppna nu webbadressen
yoursite.com/index.php/mymodule/index
det kommer att skrivas ut "Hello Tuts + World". Awesome - vi är äntligen färdiga med vår första hej världsmodul.Controller Dispatch
Här har vi förlänga klassen
Mage_Core_Controller_Front_Action
som innehåller alla metoder som används vid routning av webbadressen. Magento klassnamn återspeglar platsen för klassfilen. Så klassenMage_Core_Controller_Front_Action
ligger i plats Mage> Core> Controller> Front> Action.phpSe klassens namn på vår controller som är
Chiragdodia_Mymodule_IndexController
. Magento controller som ska namnges på ett sådant sätt att det speglar(
tagg) _ (åtgärdskontrollnamn) (nyckelordskontroller).
Chiragdodia_Mymodule
(vi har definierat den här taggen config.xml
) Controllername
= IndexKontrollant
nyckelord Baserat på detta mönster är namnet på vår controller Chiragdodia_Mymodule_IndexController
Se nu URL-mönstret som följer rutrutan nedanyoursite.com/index.php/frontendname/actionControllername/actionmethod
Baserat på detta URL-mönster är vår moduls URL-adress yoursite.com/index.php/mymodule/index/index
. Du kan också få tillgång till den med yoursite.com/index.php/mymodule
för när du inte har angett en actionController
eller actionmethod
namn, Magento laddar indexkontrollen och indexåtgärder som standard.
Låt oss nu skapa ytterligare en åtgärd: testAction
.
Vi kan komma åt testAction med URL
yoursite.com/index.php/mymodule/index/test
.Som förklaras tidigare här
Så här fungerar styrenheten i Magento.
Först kan det vara svårt att förstå allt på en gång så jag har inkluderat all källkod till den här modulen så att du kan granska det och genomföra ditt eget arbete medan du använder det som en guide.
I nästa del ska vi fylla i några layouter i vår modul genom att skapa layout och blockera filer. Vi kommer att förstå hur layoutfilerna fungerar i Magento och vilken roll som blockerar spel inom Magento.
Fram till dess skapa din egen modul och låt mig veta vad som gör dig besvärlig.
Om du fortfarande inte är säker på hur du går vidare efter att ha läst den här handledningen, kan du kontakta en av Magento-utvecklarna på Envato Studio. De kan hjälpa dig med alla typer av Magento-problem, stora och små. Här är några exempel:
Få en Magento-webbplats upprättad, eller begära avancerad anpassning, till exempel:
Den här leverantören gör något av följande:
Få ditt Magento-tema anpassat till ett rimligt pris inom bara en dags omgång.
Denna leverantör erbjuder en rad Magento-tjänster, inklusive:
Om dessa lösningar inte är rätt för dig, försök en av de dussintals andra som finns på Envato Studio.