Vor 3 Jahren war ich Teil eines Unternehmens, das Magento-Webshops für viele unabhängige Kunden betrieb. Was wir am Ende erlebt haben, war, dass wir, wenn wir eine Änderung vornehmen wollten, die alle Shops betrifft (Fehlerbehebung) oder ein Upgrade von Magento, dies von Fall zu Fall tun mussten.
Ich würde gerne Ihre Meinung dazu erfahren, ob es eine Möglichkeit gibt, eine Struktur einzurichten, die es ermöglicht, alle Shops gleichzeitig zu aktualisieren und gemeinsame Probleme für alle auf einfache Weise zu beheben.
Jeder Shop hat den gleichen Kern, aber Module usw. können variieren. Da es sich jeweils um Einzelgeschäfte handelt.
magento-1.9
multistore
best-practice
David Gulbrandsen
quelle
quelle
Antworten:
Ich empfehle, Ihre Magento-Projekte mit Composer einzurichten . Anschließend können Sie den Magento-Kern als Abhängigkeit einbinden und in einem separaten Repository mit allen offiziellen Updates und Patches verwalten. Sie könnten dort auch benutzerdefinierte Patches einfügen, aber ich würde sie lieber in einem anderen Repository aufbewahren.
Dies funktioniert nur, wenn Sie Kern und Anpassung trennen. Wenn Sie bereits Modman verwenden, habe ich gute Nachrichten für Sie: Der Übergang ist einfach.
Da Sie jedoch aus mehreren monolithischen Projekt-Repositorys stammen, sind einige anfängliche Anstrengungen erforderlich, um Ihre Anpassungen vom Kern zu trennen.
Wie es funktioniert
(Anweisungen für die Einrichtung eines neuen Projekts)
Erstellen Sie ein Repository, das den Magento-Kern enthält, und erstellen Sie darin eine
composer.json
Datei mit folgendem Inhalt:Sie können einen der vorhandenen Spiegel wie https://github.com/OpenMage/magento-mirror oder https://github.com/firegento/magento klonen , die alle aktuellen Community-Versionen einschließlich Sicherheitspatches enthalten. Sie müssen diese jedoch hinzufügen the
composer.json
(das wichtige Bit ist"type": "magento-source"
, das dem Composer-Installer mitteilt, dass dieser den Magento-Kern enthält).Erstellen Sie
composer.json
in Ihren Projekten eine Datei mit diesem Inhalt (ersetzen Sie sieurl_to_your_magento_repo.git
durch die URL des zuvor erstellten Repositorys (z. B.[email protected]:your-company/magento-ce.git
).Dadurch wird Composer angewiesen, die Magento-Quelle auf
www
und Magento-Module zu installieren , auf denen Sie möglicherweise Composer installieren.modman
. Sie können durch"magento/ce": "dev-master"
eine bestimmte Version oder einen bestimmten Zweig ersetzen . Zweigen muss "dev-" vorangestellt werden.Führen Sie diese aus
composer install
, um die Abhängigkeiten zu installieren (z. B. Magento-Kern).Holen Sie sich Modman und laufen
modman init www
. Modman ist ein Tool, das Symlinks erstellt, um Ihre Module vom Kern zu trennen.Schreiben Sie alle Anpassungen als Module in
.modman
einemodman
Datei, die die Symlinks definiert, und führen Sie sie ausmodman deploy MODULE_NAME
, um die Symlinks zu erstellen. Weitere Informationen finden Sie in der Modman-Dokumentation.Benutzerdefinierte Module, die Sie an mehreren Standorten verwenden, können als separate Repositorys erstellt werden, die dem Magento-Kernrepository ähneln, jedoch mit
"type": "magento-module"
. Außerdem müssen sie einemodman
Datei enthalten . Nachdem Sie ein solches Repository als Abhängigkeit definiert und ausgeführtcomposer update
haben, finden Sie das Modul in.modman
und können esmodman deploy
zum Erstellen der Symlinks verwenden.Diese Präsentation erklärt das Setup im Detail:
Magento mit Komponist - Marcel Hauri - Treffen Sie Magento CH 2014 (Video, 21 min)
quelle