Frage

Magento hat drei Codepools:

  1. Gemeinschaft
  2. Ader
  3. lokal

Kern: Es enthält alle Magento -Standardmodule

Gemeinschaft und lokal: Wir verwenden diese Codepools für unsere benutzerdefinierte Modulentwicklung.

Jetzt habe ich Zweifel daran:

  • Warum verwendet Magento zwei Codepools für unsere Anpassung?
  • Warum verwendet Magento keinen einzelnen Codepool zur Anpassung?

Könnte jemand darüber erklären?

War es hilfreich?

Lösung

App/Code/Kern- Hält Module, die mit dem Basismagento verteilt sind und die Kernfunktionalität ausmachen.

App/Code/Community- Hält Module, die von Dritten entwickelt werden

App/Code/Lokal- Hält benutzerdefinierte Module, die Sie entwickelt haben, einschließlich Mage -Code -Überschreibungen.

Warum verwendet Magento zwei Codepools für unsere Anpassung?

Magento verwendet tatsächlich drei Codepools. Es wird geladen lokal Erste, Gemeinschaft Zweitens und Ader dritte. Es verwendet drei für Organisationszwecke und um Probleme zu lösen, wenn zwei Erweiterungen der Drittanbieter versuchen, dasselbe umzuschreiben. In einem Beispiel war, dass Sie zwei Erweiterungen in App/Code/Community haben, um dasselbe Modell neu zu schreiben.

Warum verwendet Magento den Einzelcode -Pool nicht zur Anpassung?

Es wurde auf diese Weise getan, um zu versuchen, eine Codeorganisation zu haben. Wenn Sie Konflikte von Drittanbietern haben, ist der Einheimische großartig, um diese Probleme zu lösen. Der Einheimische ist auch großartig, Erweiterungen zu haben, die nur diese Website jemals haben wird.

Andere Tipps

enter image description here

core : Dieser Codepool gehört zum Magento Core Development Team. Sie sollten also keine Änderungen in diesem Codepool vornehmen.

community : Dies gehört den Entwicklern von Magento Community (einschließlich eines Entwicklers, der Erweiterungen von Drittanbietern entwickelt). Wenn Sie Erweiterungen von Drittanbietern erstellen, können Sie diesen Codepool dafür verwenden.

local : Dies kann verwendet werden, wenn Sie Änderungen vornehmen möchten (fügen Sie neue Funktionen für Funktionen / Erweiterung / Kernfunktionalität usw. hinzu) speziell für Ihren Magento -Store und möchten sie nicht mit der Community teilen. Gleichzeitig können Sie die Funktionalität in Kern- und Community -Codepools überschreiben

Beschreiben Sie Magento Codepools

Kernpool

Zuallererst speichert dieser Ordner den gesamten Code, der Magento so mächtig, flexibel und schön macht. Die Hauptregel der Magento -Entwicklung ist, dass Sie niemals Änderungen daran vornehmen sollten. Mit anderen Worten, dieser Ordner gehört nur zu Magento -Core -Entwicklern, und wenn Sie etwas in diesem Pool bearbeiten wollen, könnte ihr böser Geist Sie sogar durch das Display bestrafen.

Community Pool

Dieser Ordner gehört ganz zu Community -Entwicklern. Dies ist der richtige Ort für Hunderte von freien und bezahlten Erweiterungen von Drittanbietern, die im Magentoconnect oder im Erweiterungs -Entwicklungsgeschäft verfügbar sind. Wenn Sie also eine Erweiterung installiert haben, muss sie also nur in App/Code/Community/nur sein.

Lokaler Pool

Wenn Sie Ihr eigenes Geschäft in Magento haben und alles selbst machen möchten oder Sie ein Magento-Entwickler sind und den Zweck haben, die Logik irgendwie zu ändern, 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 Kernpool und tun Sie, was Sie neigen möchten. 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.

Hinzufügen aller oben genannten Einflüsse für Prioritäten und Modularität. Sie können dasselbe in mage.php überprüfen.

Laden Codepools mit

 $paths[] = BP . DS . 'app' . DS . 'code' . DS . 'local';
 $paths[] = BP . DS . 'app' . DS . 'code' . DS . 'community';
 $paths[] = BP . DS . 'app' . DS . 'code' . DS . 'core';
 $paths[] = BP . DS . 'lib';

Zuerst lokal namens the the Community thes Core und Magento finden keine Kerndateien, dann wird in Lib-Ordner gesucht, die die Zend-Framework-Kerndateien enthalten

Die beste Erklärung, die ich habe, ist, dass Sie, wenn Sie Ihre Erweiterungen an ein breiteres Publikum verteilen möchten, über Magento Connect in ein breiteres Publikum verteilen können.

Dies würde es einem anderen Entwickler ermöglichen, das Verhalten zu überschreiben, indem sie eine Klasse in den lokalen Ordner einfügt.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit magento.stackexchange
scroll top