Angenommen, ich möchte eine Magento-Erweiterung entwickeln, die beispielsweise mit einem Open Source-Diagrammpaket oder einer Bildergalerie oder was auch immer verbunden ist, das NICHT Teil der Erweiterung selbst ist. Beim Herunterladen (getrennt von der Erweiterung) wird die Drittanbieter-Bibliothek in einer eigenen .zip-Datei mit allen .php-, .js-, .html- und .css-Dateien geliefert.
Platziere ich auf dem armen Site-Eigentümer, der meine Erweiterung zusammen mit der Drittanbieter-Bibliothek installieren möchte, die Last, die ursprüngliche .zip-Datei eines Drittanbieters auseinander zu ziehen und sie dazu zu bringen, .js in / js, .php in / lib ,. CSS in / Haut usw.?
Oder gibt es eine allgemein akzeptierte "Müllhalde" für .zips von Drittanbietern, auf der der Download bequem wie besehen entpackt und damit fertig werden kann?
Sie möchten also eine Erweiterung erstellen und verwenden eine externe Ressource / ein externes Paket zum Erstellen. Unabhängig davon, welches Paket Sie in Ihrer Erweiterung verwendet haben, sollte Ihre Erweiterung meiner Meinung nach den Best Practices von Magento entsprechen. Das bedeutet, dass Sie alle JS-, CSS- und Images von der externen Ressource trennen und in
base\default
Themenpaketverzeichnissen ablegen sollten .Das heißt, es gibt keinen solchen eindeutigen Speicherort für die Platzierung von Paketressourcen von Drittanbietern. Wenn Sie eine coole Erweiterung liefern, sollten alle js, css und Bilder, die sich auf Ihre Erweiterung beziehen, an einem Ort aufbewahrt werden, an dem normalerweise ein anderer Entwickler nachsehen wird, und in fast allen Fällen handelt es sich um das
base/default
Themenpaket.Zusamenfassend
Alle Ihre Erweiterungen sollten untergehen
Auf diese Weise kann ein anderer Entwickler problemlos JS, CSS und Bilder (auch Ihrer externen Ressourcen) Ihrer Erweiterung finden. Da Sie ein zusätzliches Unterverzeichnis verwenden, um die externen Ressourcendateien in Ihrem Verzeichnis für Erweiterungsnamen anzugeben, erhalten andere den besten Hinweis darauf, dass Ihre Erweiterung auf Paketen von Drittanbietern basiert.
Ich empfehle Ihnen daher, die externen Pakete zu trennen und sie zu einem Teil Ihrer Erweiterung zu machen, damit ein anderer Entwickler Ihre Abhängigkeiten leicht finden kann. :-)
BEARBEITEN - 1
Sie sollten Ihre Erweiterungslast nicht für Ihren Websitebesitzer belasten. Sie können diese Schwierigkeit vermeiden, indem Sie Ihre Erweiterung richtig ausrichten. Das heißt, wenn Sie alle zugehörigen Dateien in den angegebenen Verzeichnispositionen speichern, sollte ein Websitebesitzer lediglich Ihre Erweiterung abrufen und dann Ihre Erweiterung aus dem Anwendungsstammverzeichnis zusammenführen. dh Richten Sie Ihre Nebenstelle richtig aus. Es sollte so aussehen.
BEARBEITEN - 2
Wenn es einige Pakete gibt, die für alle Magento-Anwendungen gemeinsam genutzt werden sollen (z. B. eine Javascript-Bibliothek oder ein PHP-Paket usw.), können Sie sie in ein
\lib
Verzeichnis stellen.Es ist richtig, dass möglicherweise doppelte Dateien vorhanden sind, wenn zwei Erweiterungen auf denselben Ressourcenpaketen basieren. Sie können auch unterschiedliche Versionen desselben Ressourcenpakets verwenden. Grundsätzlich sollte Ihre Erweiterung jedoch nur die Ressource Ihrer Erweiterung verwenden (und kann sich auf die Standardressourcen von Magento stützen) und nicht auf die Ressourcen anderer Erweiterungen, es sei denn, Ihre Erweiterung ist eine "Erweiterungsversion" einer Erweiterung eines Drittanbieters.
quelle
js, css, images
imbase\default
Paket behalten ". Siehe auch meinen BearbeitungscodeMagento hat einen eigenen Paketmanager namens Magento Connect. Sie sollten diese Anleitung aus der offiziellen Dokumentation lesen, um zu verstehen, wie das Paket aussehen sollte. Sie können Ihr Modul aus einer Magento-Installation packen, sobald Sie die Struktur verstanden haben.
quelle
Grundsätzlich Magento seine eigene Struktur zu halten , verwendet
.php
,.phtml
,js
,css
,images
Dateien.Für Entwickler von Magento-Erweiterungen ist es sehr wichtig, dass Sie dem Magento-Weg folgen. Überprüfen Sie diesen Link .
Damit,
.php
Dateien sollten sich imapp/code/community
Ordner befindenjs
Dateien können in einenjs
Ordner oder in einenskin/frontend or adminhtml/your_theme_pack/your_theme/js
Ordner verschoben werdencss
Dateien können in einenskin/frontend or adminhtml/your_theme_pack/your_theme/css
Ordner verschoben werdenimages
Dateien können in einenskin/frontend or adminhtml/your_theme_pack/your_theme/images
Ordner verschoben werdenfiles should go to
Ordner 'html app / design / frontend oder adminhtml / template`PS-Frontend bedeutet, wenn Ihre Erweiterung für den Front Store bestimmt ist, und adminthml bedeutet, dass Ihre Erweiterung für den Admin-Bereich bestimmt ist.
Es gibt spezielle Möglichkeiten, diese Dateien in Magento zu speichern. Sie sollten sie daher befolgen.
Ich würde auch prüfen, ob Ihre gewünschten / Kopierfunktionen bereits im Magento / Zend-Framework verfügbar sind. Zum Beispiel sind das Erstellen von PDFs, das Senden von E-Mails, das Lesen von XML usw. bereits in Magento erstellt.
Hoffe das hilft.
Update 1
Wenn Sie Ihre Dateien nur irgendwo aufbewahren möchten, können Sie sie überall aufbewahren. Sie können sogar einen neuen Ordner im Magento-Stammverzeichnis erstellen. Dies ist jedoch keine bewährte Methode für Magento, das Ihren Server beim Ausführen dieser Dateien lädt. Sie möchten dies überprüfen https://magentotherightway.com/
quelle
local
Codepool installiert werden .