Magento tilpasset modulutvikling er en sentral del av Magento-utviklingen eller Magento-prosjektet, fordi du kanskje vil integrere din egen funksjonalitet / modul i ditt eksisterende Magento-prosjekt.
I denne serien skal jeg dekke detaljer om Magento tilpasset modulutvikling.
Hvis du vil gå videre med Magento-utviklingen, sjekk ut det store utvalget av nyttige Magento-utvidelser på Envato Market.
Magento-utvidelser på Envato MarketI hele denne serien refererer jeg Magento Community Edition 1.7, selv om tilpassede modulstrukturer er de samme i alle versjoner av Magento. Før vi skal begynne den faktiske modulutviklingen, la oss raskt forstå grunnleggende strukturen i Magento.
Når du installerer en ny Magento, vil du legge merke til følgende Magento katalogstruktur:
Som alle andre hovedrammer som Joomla, CakePHP, CodeIgniter, etc., følger Magento også MVC-basert arkitektur, selv om dette er litt annerledes enn kjernen PHP MVC-arkitektur. Her skal jeg forklare forskjellen i Magento-arkitekturen ved å sammenligne den med enkel PHP MVC-arkitektur.
I det typiske MVC-mønsteret er strømmen av søknaden noe slikt:
index.php
- fra hvor hele app-rutemekanismen er bestemt.Magento MVC-arkitektur legger til noen lag til MVC-mønsteret, men den grunnleggende strømmen av kontroll av et program er slik:
index.php
- fra hvor hele appen vil bli initialisert.Dette kan i utgangspunktet være vanskelig å forstå siden det inneholder noen ekstra lag. For å bli bedre kjent med strømmen av kontroll, la oss utvikle en tilpasset "Hello World" -modul.
Magento inneholder tre typer kode bassenger hvor alle tilpassede og kjernemodulene i Magento er bosatt.
Dermed har vi to valg av bassenger: Fellesskap eller Lokal. Siden vi jobber med vårt eget prosjekt, skal vi bruke et lokalt basseng, men det er ingen begrensninger på bruk av fellesbassenget, enten.
Struktur
Magento-modulene består av følgende komponenter:
Vi må gi navnet til vår modul. Vanligvis er Magento-modulnavnene laget av to deler:
som forfatter eller firmanavn og
som et aktuelt modulnavn.
Basert på denne navngivningskonvensjonen, gir jeg vår modul den Chiragdodia_Mymodule Navn. Vi vil referere til dette navnet gjennom hele denne serien.
Lar oss lage kataloger basert på strukturen ovenfor. Gå til din Magento installasjonsretning, og naviger deretter til app / code / local
og opprett katalogene som vist nedenfor.
Deretter skal vi konfigurere og aktivere modulen vår ved å opprette konfigurasjonsfil Chiragdodia_Mymodule.xml
i app / etc / moduler
katalog. Denne katalogen inneholder konfigurasjonsfiler for alle moduler.
ekte lokal
Denne filen vil fortelle Magento om plasseringen av modulen vår. I aktiv
tag, vi har spesifisert ekte
for å aktivere modulen vår. Hvis alt er riktig så langt, så finner du modulen din i Magento Admin Panel> System> Konfigurasjon> Avansert> Avansert> Deaktiver modulutgang liste. Herfra kan du aktivere og deaktivere modulen din.
Neste vil vi opprette vår modulkonfigurasjonsfil. Denne filen vil fortelle Magento alt om modulen vår. Dette inkluderer hvor mange filer vår modul inneholder, hvilken type filer (modeller, hjelpere, databaseklasser) og så videre.
Gå til app / code / local / Chiragdodia / Mymodule / etc
og opprett en config.xml
fil som vil inneholde følgende innhold
0.1.0 Chiragdodia_Mymodule mymodule
La oss gå gjennom linje for linje for å forstå hver tag. Her er den første taggen
som inneholder navnet og versjonen av modulen vår. Versjonsnummeret er svært viktig når det gjelder oppdatering av modulen, oppdater modulen.
De
tag vil fortelle Magento om kontrolleren sendt. Inne i
tag, vi har definert
som forteller Magento hvordan du får tilgang til våre kontroller via rutemekanismen.
I
tag, vi har definert modulnavn i
tag og frontend navn i
. Ved å bruke et frontendnavn, kan vi få tilgang til modulen vår i frontend yoursitename.com/index.php/mymodule/index
.
Ved å ringe yoursitename.com/index.php/mymodule
eller yoursitename.com/index.php/mymodule/index
Magento vil se etter indekshandling av modulens kontrollerfil. Som sådan må vi opprette vår kontrollerfil.
Gå til app / kode / lokale / Chiragdodia / Mymodule / kontrollører
og opprett fil IndexController.php
med følgende innhold.
Merk at hver fils navn og klassenavn er saksfølsomme i Magento. Det er veldig viktig at du tar vare på å navngi arbeidet ditt når du lager filer og klasser.
Nå åpne URL
yoursite.com/index.php/mymodule/index
det vil skrive ut "Hei tuts + Verden". Awesome - vi er endelig ferdig med vår første hei verdensmodul.Controller Dispatch
Her har vi utvide klassen
Mage_Core_Controller_Front_Action
som inneholder alle metodene som brukes i ruting av url. Magento klassenavn gjenspeiler plasseringen av klassefilen. Så klassenMage_Core_Controller_Front_Action
ligger på stedet Mage> Core> Controller> Front> Action.phpSe klassens navn på vår kontroller som er
Chiragdodia_Mymodule_IndexController
. Magento-kontrolleren til å bli navngitt på en slik måte at den reflekterer(
tag) _ (handlingskontrollnavn) (søkeordkontrollør).
Chiragdodia_Mymodule
(vi har definert denne taggen config.xml
) Controllername
= IndeksController
søkeord Basert på dette mønsteret, er navnet på vår kontroller Chiragdodia_Mymodule_IndexController
Se nå URL-mønsteret som følger nedenstående rutemønsteryoursite.com/index.php/frontendname/actionControllername/actionmethod
Basert på dette nettadressemønsteret er modulens URL-adresse yoursite.com/index.php/mymodule/index/index
. Du kan også få tilgang til den ved hjelp av yoursite.com/index.php/mymodule
fordi når du ikke har spesifisert en actionController
eller actionmethod
navn, Magento laster indekskontrolleren og indeksaksjonen som standard.
La oss nå lage en annen handling: testAction
.
Vi kan få tilgang til testAction ved hjelp av URL
yoursite.com/index.php/mymodule/index/test
.Som forklart tidligere her
Slik fungerer kontrolleren i Magento.
I begynnelsen kan det være vanskelig å forstå alt på en gang, så jeg har tatt med alle kildekoden til denne modulen, slik at du kan se gjennom det og gjennomføre ditt eget arbeid mens du bruker det som en veiledning.
I neste del skal vi fylle ut noen oppsett i modulen vår ved å lage layout og blokkere filer. Vi vil forstå hvordan layoutfilene fungerer i Magento, og hvilken rolle blokker spiller innenfor Magento-sammenhengen.
Inntil da lag din egen modul og gi meg beskjed om noe som gjør at du har problemer.
Hvis du fortsatt ikke er sikker på hvordan du går videre etter å ha lest denne opplæringen, kan du prøve å kontakte en av Magento-utviklerne på Envato Studio. De kan hjelpe deg med alle slags Magento-problemer, store og små. Her er noen eksempler:
Få en Magento-nettside opprettet, eller be om avansert tilpasning som:
Denne leverandøren vil gjøre noe av følgende:
Få ditt Magento-tema tilpasset til en rimelig pris innen bare en dags turnaround.
Denne leverandøren tilbyr en rekke Magento-tjenester, inkludert:
Hvis disse løsningene ikke passer deg, kan du prøve en av de mange andre som er tilgjengelige på Envato Studio.