app / code / core
- Enthält Module, die mit dem Basismagento verteilt werden und die Kernfunktionalität ausmachen.
App / Code / Community
- Enthält Module, die von Dritten entwickelt wurden
app / code / local
- Enthält benutzerdefinierte Module, die Sie entwickelt haben, einschließlich Mage-Code-Überschreibungen.
Warum verwendet Magento zwei Code-Pools für unsere Anpassung?
Magento verwendet tatsächlich drei Code-Pools. Es wird zuerst lokal , dann Community und dann Core geladen . Es werden drei für Organisationszwecke und zur Behebung von Problemen verwendet, wenn zwei oder mehr Erweiterungen von Drittanbietern versuchen, dasselbe zu schreiben. In einem Beispiel, in dem Sie zwei Erweiterungen in App / Code / Community haben, die versuchen, dasselbe Modell neu zu schreiben, können Sie einfach eine Erweiterung in App / Code / Local erstellen und die beiden Erweiterungslogiken zusammenführen.
Warum verwendet Magento keinen einzelnen Code-Pool zur Anpassung?
Auf diese Weise wurde versucht, Code zu organisieren. Wenn Sie Konflikte mit Drittanbietern haben, hilft Ihnen das lokale Netzwerk bei der Lösung dieser Probleme. Das Lokal ist auch großartig, Erweiterungen zu haben, die nur diese Site jemals haben wird.
local
wichtig , dass dieser dritte Code-Pool alle Aufhänge ausgleicht.core :
Dieser Code-Pool gehört zum Kernentwicklungsteam von Magento. Sie sollten also KEINE Änderungen an diesem Code-Pool vornehmen.community :
Dies gehört Magento-Community-Entwicklern (einschließlich Entwicklern, die Erweiterungen von Drittanbietern entwickeln). Wenn Sie Erweiterungen von Drittanbietern erstellen, können Sie diesen Codepool dafür verwenden.local :
Dies kann verwendet werden, wenn Sie Änderungen (Hinzufügen neuer Funktionen / Überschreiben von Erweiterungen / Änderungen der Kernfunktionen usw.) speziell für Ihren Magento-Store vornehmen und diese nicht für die Community freigeben möchten. Gleichzeitig können Sie die Funktionalität in Core- und Community-Code-Pools überschreibenquelle
Beschreiben von Magento-Codepools
Core-Pool
Erstens speichert dieser Ordner den gesamten Code, der Magento so leistungsfähig, flexibel und ansprechend macht. Die Hauptregel der Magento-Entwicklung ist, dass Sie niemals Änderungen daran vornehmen sollten. Mit anderen Worten, dieser Ordner gehört nur den Magento-Kernentwicklern und wenn Sie irgendetwas in diesem Pool bearbeiten, könnte Sie ihr böser Geist sogar durch die Anzeige bestrafen.
Gemeinschaftspool
Dieser Ordner gehört ausschließlich Community-Entwicklern. Dies ist der richtige Ort für Hunderte von kostenlosen und kostenpflichtigen Erweiterungen von Drittanbietern, die Sie bei MagentoConnect oder im Extensions Development Store finden. Wenn Sie also eine Erweiterung installiert haben, muss diese in app / code / community / only vorhanden sein.
Lokaler Pool
Wenn Sie einen eigenen Magento-basierten Store haben und alles selbst erstellen möchten oder ein Magento-Entwickler sind und die Logik irgendwie ändern möchten, ist der lokale Pool der Ort, an dem alles getan werden sollte. Wenn Sie Magento-Erweiterungen, -Blöcke oder -Methoden überschreiben möchten, kopieren Sie die erforderlichen Ordner aus dem Core-Pool und tun Sie, wozu Sie geneigt sind. Wenden Sie dieselbe Regel für benutzerdefinierte Erweiterungen an, die speziell für die Website erstellt wurden. Der gesamte Code sollte sich im lokalen Pool befinden.
quelle
Dies alles einfach hinzufügen, um Prioritäten zu setzen und Modularität zu erreichen. Sie können das gleiche in Mage.php überprüfen.
Laden von Code-Pools mit
Also zuerst Local, dann Community, dann Core und Magento werden keine Core-Dateien finden, dann wird nach lib-Ordnern gesucht, die die Zend-Framework Core-Dateien enthalten
quelle
Die beste Erklärung, die ich habe, ist, dass Sie Ihre Erweiterungen, wenn Sie sie beispielsweise über Magento Connect an ein breiteres Publikum verteilen möchten, in der Community platzieren können.
Auf diese Weise könnte ein anderer Entwickler das Verhalten überschreiben, indem er eine Klasse in den lokalen Ordner legt.
quelle