Die Entwicklung von Magento-Custom-Modulen ist ein zentraler Bestandteil von Magento-Entwicklungs- oder Magento-Projekten, da Sie zu jedem Zeitpunkt Ihre eigenen Funktionen / Module in Ihr vorhandenes Magento-Projekt integrieren möchten.
In dieser Serie werde ich die Details der Entwicklung der benutzerdefinierten Module von Magento behandeln.
Wenn Sie Ihre Magento-Entwicklung weiter vorantreiben möchten, sehen Sie sich die zahlreichen nützlichen Magento-Erweiterungen auf Envato Market an.
Magento-Erweiterungen auf dem Envato-MarktIn dieser Serie beziehe ich mich auf Magento Community Edition 1.7, obwohl benutzerdefinierte Modulstrukturen in allen Magento-Versionen gleich sind. Bevor wir loslegen, beginnen wir mit der eigentlichen Modulentwicklung. Wir wollen die Grundstruktur von Magento schnell verstehen.
Wenn Sie einen neuen Magento installieren, werden Sie die folgende Magento-Verzeichnisstruktur feststellen:
Wie alle anderen wichtigen Frameworks wie Joomla, CakePHP, CodeIgniter usw. folgt Magento auch der MVC-basierten Architektur, obwohl sich diese etwas von der PHP-Kern-MVC-Architektur unterscheidet. Hier erkläre ich den Unterschied in der Magento-Architektur durch Vergleich mit einer einfachen PHP-MVC-Architektur.
Im typischen MVC-Muster sieht der Ablauf der Anwendung etwa so aus:
index.php
- von wo aus der gesamte App-Routing-Mechanismus bestimmt wird.Die MVC-Architektur von Magento fügt dem MVC-Muster ein paar Schichten hinzu, der grundlegende Steuerungsfluss einer Anwendung sieht jedoch so aus:
index.php
- Von hier wird die gesamte App initialisiert.Anfangs ist dies möglicherweise schwer zu verstehen, da es einige zusätzliche Schichten enthält. Um sich mit dem Steuerungsfluss vertraut zu machen, entwickeln wir ein benutzerdefiniertes "Hello World" -Modul.
Magento enthält drei Arten von Code-Pools, in denen sich alle benutzerdefinierten Module und Kernmodule von Magento befinden.
Daher haben wir zwei Pools zur Auswahl: Community oder Local. Da wir an einem eigenen Projekt arbeiten, verwenden wir einen lokalen Pool. Es gibt jedoch keine Einschränkungen für die Nutzung des Community-Pools.
Struktur
Magento-Module bestehen aus folgenden Komponenten:
Wir müssen unserem Modul einen Namen geben. Im Allgemeinen bestehen die Namen der Magento-Module aus zwei Teilen:
als Autor oder Firmenname und
als tatsächlicher Modulname.
Basierend auf dieser Namenskonvention gebe ich unserem Modul das Chiragdodia_Mymodule Name. Wir werden in dieser Serie auf diesen Namen verweisen.
Lässt die Verzeichnisse basierend auf der obigen Struktur erstellen. Gehen Sie zu Ihrer Magento Installationsrichtung und navigieren Sie zu App / Code / Lokal
und erstellen Sie die Verzeichnisse wie unten gezeigt.
Als Nächstes konfigurieren und aktivieren Sie unser Modul, indem Sie die Konfigurationsdatei erstellen Chiragdodia_Mymodule.xml
in dem app / etc / modules
Verzeichnis. Dieses Verzeichnis enthält Konfigurationsdateien für alle Module.
wahr lokal
Diese Datei informiert Magento über die Position unseres Moduls. In dem aktiv
Tag, den wir angegeben haben wahr
um unser Modul zu aktivieren. Wenn bis jetzt alles in Ordnung ist, finden Sie Ihr Modul im Magento-Admin-Panel> System> Konfiguration> Erweitert> Erweitert> Modulausgabe deaktivieren Liste. Von hier aus können Sie Ihr Modul aktivieren und deaktivieren.
Als Nächstes erstellen wir unsere Modulkonfigurationsdatei. Diese Datei informiert Magento über unser Modul. Dies beinhaltet, wie viele Dateien unser Modul enthält, welche Art von Dateien (Modelle, Helfer, Datenbankklassen usw.).
Gehe zu App / Code / Lokal / Chiragdodia / Mymodule / etc
und erstellen Sie ein config.xml
Datei, die folgenden Inhalt enthält
0,1,0 Chiragdodia_Mymodule Mymodule
Lassen Sie uns Zeile für Zeile durchgehen, um die einzelnen Tags zu verstehen. Hier ist der erste Tag
das enthält den Namen und die Version unseres Moduls. Die Versionsnummer ist sehr wichtig für die Aktualisierung Ihres Moduls.
Das
Das Tag teilt Magento mit, welcher Controller gesendet wurde. In der
Tag, den wir definiert haben
Dadurch erfahren Sie, wie Sie über den Routing-Mechanismus auf unsere Controller zugreifen können.
In dem
tag haben wir den Modulnamen in definiert
Tag und Name des Frontends in
. Mit einem Frontend-Namen können wir auf unser Modul im Frontend gerne zugreifen yoursitename.com/index.php/mymodule/index
.
Durch anrufen yoursitename.com/index.php/mymodule
oder yoursitename.com/index.php/mymodule/index
Magento sucht nach Indexaktionen der Controller-Datei Ihres Moduls. Daher müssen wir unsere Controller-Datei erstellen.
Gehe zu App / Code / lokal / Chiragdodia / Mymodule / Controller
und erstellen Sie eine Datei IndexController.php
mit folgendem Inhalt.
Beachten Sie, dass der Name und die Klassennamen der einzelnen Dateien in Magento zwischen Groß- und Kleinschreibung unterscheiden. Es ist sehr wichtig, dass Sie beim Erstellen von Dateien und Klassen sorgfältig darauf achten, Ihre Arbeit zu benennen.
Öffnen Sie jetzt die URL
yoursite.com/index.php/mymodule/index
es wird gedruckt "Hallo Tuts + World". Toll - wir sind endlich fertig mit unserem ersten Hallo-Welt-Modul.Controller Dispatch
Hier haben wir die Klasse erweitert
Mage_Core_Controller_Front_Action
Das enthält alle Methoden, die beim Routing von URLs verwendet werden. Der Name der Magento-Klasse gibt den Speicherort der Klassendatei an. Also die KlasseMage_Core_Controller_Front_Action
liegt am Ort Mage> Core> Controller> Front> Action.phpSiehe den Klassennamen unseres Controllers
Chiragdodia_Mymodule_IndexController
. Magento-Controller so zu benennen, dass es reflektiert(
tag) _ (Action Controllername) (Schlüsselwort Controller).
Chiragdodia_Mymodule
(Wir haben dieses Tag in definiert config.xml
) Controllername
= IndexRegler
Stichwort Basierend auf diesem Muster lautet der Name unseres Controllers Chiragdodia_Mymodule_IndexController
Sehen Sie sich nun das URL-Muster an, das dem folgenden Routenmuster folgtyoursite.com/index.php/frontendname/actionControllername/actionmethod
Basierend auf diesem URL-Muster lautet die URL unseres Moduls yoursite.com/index.php/mymodule/index/index
. Sie können es auch über aufrufen yoursite.com/index.php/mymodule
weil immer wenn du keine angegeben hast actionController
oder Aktionsmethode
Name, lädt Magento standardmäßig den Indexcontroller und die Indexaktion.
Nun erstellen wir eine weitere Aktion: testAction
.
Wir können über eine URL auf die testAction zugreifen
yoursite.com/index.php/mymodule/index/test
.Wie schon früher erklärt
So funktioniert der Controller in Magento.
Zunächst kann es schwierig sein, alles auf einmal zu verstehen, daher habe ich den gesamten Quellcode in dieses Modul aufgenommen, sodass Sie es überprüfen und Ihre eigene Arbeit implementieren können, während Sie es als Leitfaden verwenden.
Im nächsten Teil werden wir einige Layouts in unserem Modul ausfüllen, indem Sie Layout- und Blockdateien erstellen. Wir werden verstehen, wie die Layout-Dateien in Magento funktionieren und welche Rolle Blockierungen im Zusammenhang mit Magento spielen.
Erstellen Sie bis dahin Ihr eigenes Modul und teilen Sie mir alles mit, was Sie in Schwierigkeiten bringt.
Wenn Sie nach dem Lesen dieses Tutorials immer noch nicht sicher sind, wie Sie vorgehen sollen, wenden Sie sich an einen der Magento-Entwickler von Envato Studio. Sie können Ihnen bei allen Arten von Magento-Problemen helfen, egal ob groß oder klein. Hier einige Beispiele:
Richten Sie eine Magento-Website ein oder fordern Sie erweiterte Anpassungen an, z.
Dieser Anbieter führt eine der folgenden Aktionen aus:
Holen Sie sich Ihr Magento-Theme zu einem günstigen Preis innerhalb eines Tages.
Dieser Anbieter bietet eine Reihe von Magento-Diensten an, darunter:
Wenn diese Lösungen nicht für Sie geeignet sind, probieren Sie eine der zahlreichen anderen in Envato Studio verfügbaren Lösungen aus.