Sök…


Anmärkningar

MVC står för Model-View-Controller. Alla applikationer som separerar dess datatillgång, affärslogik och användargränssnitt kallas MVC. Det kan finnas två typer av MVC: konventionbaserad och konfigurationsbaserad. Exempel, cakePHP är konventionbaserad, dvs du behöver bara följa anvisningarna från kärnsystemet för att göra din modul redo på bara några rader. Magento är konfigurationsbaserat, det vill säga du måste ange varje sak i din moduls konfigurationsfil för att få den att fungera. Magento har Controller (för routing), Block, Model och Mallfil. Hur Magentos MVC fungerar:

  1. När du anger webbadressen (något som http://mysite.com/frontname/controller/method/param1/value1/param2/value2) , upptas denna URL av en PHP-fil som heter index.php som instanserar Magento-applikationen
  2. Magento-applikationen aktiverar Front Controller-objekt
  3. Vidare aktiverar frontkontrollen routerobjekt (specificeras i modulens config.xml, global tagg)
  4. Nu är Router ansvarig för att "matcha" förnamnet som finns i vår URL
  5. Om "matchning" hittas, ser den controller-namnet och metodnamnet i URL: en som slutligen kallas.
  6. Beroende på vad som skrivs i åtgärdens namn (metodnamn) körs det nu. Om några modeller anropas i den kommer regulatormetoden att instansera den modellen och anropa metoden i den som begärs.
  7. Därefter instanserar controller-åtgärden (metoden) Layout-objektet, som kallar Block specificerat för denna åtgärd (metod) -namn (Varje controller-handlingsnamn har block och mallfil associerade med det, som kan hittas i app / design / frontend eller adminhtml / namnutrymme / modul / layout / module.xml-fil, namn på layoutfil (module.xml) finns i config.xml för den modulen, i taggen för uppdatering av layout).
  8. Mallfilen (.phtml) kallar nu motsvarande block för varje metodförfrågan. Så om du skriver $ this-> metodnamn i .phtml-fil kommer den att kontrollera "metodnamn" i blockfilen som är associerad i filen mod.xml.
  9. Block innehåller PHP-logik. Den refererar till modeller för all data från DB.
  10. Om antingen Block, Mallfil eller Controller behöver hämta / ställa in vissa data från / till databasen, kan de ringa modell direkt som Mage :: getModel ('modulename / modelname').

Förstå MVC i Magento

ange bildbeskrivning här

MVC Flow i Magento

ange bildbeskrivning här



Modified text is an extract of the original Stack Overflow Documentation
Licensierat under CC BY-SA 3.0
Inte anslutet till Stack Overflow