Antworten:
Es gibt zwei relativ neue Techniken, um dies zu tun:
Verwenden Sie modman, damit Sie selbst steuern können, was für jede Umgebung bereitgestellt werden soll. Dies bedeutet, dass Sie modman deploy [name-of-dev-extension]
nur in Ihrer Entwicklungsumgebung ausgeführt werden.
Verwenden Sie magento-composer mit verschiedenen composer.json
Szenarien für verschiedene Umgebungen. Noch einfacher ist es, diese Erweiterungen als --require-dev
Entwicklungsmodule anzugeben und das Projekt dann über den Schalter auf Ihrem Entwicklungscomputer zu installieren .
Diese können normalerweise bequem mit einem Konfigurations-Flag deaktiviert werden, so dass sie technisch aktiv sind, aber nichts tun. Wenn Sie dieses Flag in app/etc/local.xml
Ihrem Live-System auf false setzen , sollte es Ihnen gut gehen.
local.xml
Datei in Ihrem Repo behalten . Welches könnte ein Fall sein.
local.xml
ist normalerweise nicht im Repo
Sehen Sie sich die MageTrashApp an, die kürzlich beim Magento Hackathon in Berlin erstellt wurde. Ermöglicht das Deaktivieren von Modulen über das Admin-Panel.
Eine einfache Möglichkeit besteht darin, das Modul in / etc / modules zu deaktivieren, es zu pushen, die Datei lokal zu ignorieren und es erneut zu aktivieren.
Ich denke, der beste Weg, um damit umzugehen, ist, entweder alle diese Module im lokalen CodePool zu belassen und alle lokalen Module mit dieser Zeile in Ihrer local.xml live zu deaktivieren:
<disable_local_modules>true</disable_local_modules>
Oder Sie können "Modulausgabe deaktivieren" im Backend Ihrer Live-Umgebung ausführen. (System -> Konfiguration -> Erweitert). Dies deaktiviert das Modul jedoch nicht vollständig. Aber vielleicht ist es gerade genug zu wollen, dass du dich davor verstecken willst.
Die einzige andere Sache, an die ich denken kann, ist, Code zu schreiben, der das schaffen kann. Prüfen Sie einfach, ob es sich im Entwicklermodus befindet ( Mage::getIsDeveloperMode()
) und deaktivieren Sie dann die Module. Ich habe hier einige Details dazu gefunden: /programming/6520634/magento-how-to-disable-module-programmatically
local
Modulen werden Sie gezwungen, alle anderen Module von local
CodePool in CodePool zu verschieben community
und dies auch für alle zukünftigen Erweiterungen zu tun. Durch das Deaktivieren der Modulausgabe wird der Speicher weiterhin durch die Erweiterung verlangsamt. Für die dritte Lösung sind Änderungen erforderlich, die mit der Aktualisierung der Erweiterung (en) überschrieben werden.
Normalerweise lege ich sie nur in meine Testumgebung, checke sie jedoch nicht in das Versionskontrollsystem ein, indem ich beispielsweise die .gitignore
Datei verwende, um sie von der Prüfung für das Commit auszuschließen.
Es gibt eine Folie in der Konferenz Imagine 2011 von Erik Hansen. Er gab einen Code in der Folie an, der wie folgt ist (für den Entwicklermodus)
# File : index.php
if(preg_match('/^stage\.|\.dev$/', $_SERVER['HTTP_HOST'])) {
$_SERVER['MAGE_IS_DEVELOPER_MODE'] = true;
}
Hier aktiviert Erik eine Einstellung basierend auf den Subdomains, die Sie selbst anpassen können.