Odpowiedzi:
Istnieją dwie stosunkowo nowe techniki, aby to zrobić:
Użyj modmana , abyś sam mógł kontrolować, co wdrożyć dla każdego środowiska. Oznacza to, że działasz modman deploy [name-of-dev-extension]
tylko w środowisku deweloperskim.
Użyj magento-kompozytora z różnymi composer.json
scenariuszami dla różnych środowisk. Jeszcze łatwiejszym sposobem jest określenie tych rozszerzeń jako modułów --require-dev
deweloperskich, a następnie zainstalowanie projektu za pomocą przełącznika na komputerze programistycznym.
Zazwyczaj można je wygodnie wyłączyć za pomocą flagi konfiguracji, więc są technicznie aktywne, ale nic nie robią. Jeśli ustawisz tę flagę na false w app/etc/local.xml
swoim systemie na żywo, wszystko powinno być w porządku.
local.xml
plik w repozytorium. Co może być przypadkiem.
local.xml
zwykle nie ma jej w repozytorium
Zobacz MageTrashApp, który powstał niedawno na Magento Hackathon w Berlinie. Umożliwia dezaktywację modułów za pomocą panelu administracyjnego.
Prostym sposobem na to jest wyłączenie modułu w / etc / modules, wypchnięcie go, zignorowanie pliku lokalnie i włączenie go ponownie.
Myślę, że najlepszym sposobem na poradzenie sobie z tym jest pozostawienie wszystkich modułów w lokalnym codePool i wyłączenie wszystkich modułów lokalnych na żywo z tą linią w pliku local.xml:
<disable_local_modules>true</disable_local_modules>
Możesz też wykonać polecenie „Wyłącz wyjście modułu” w backendu swojego środowiska na żywo. (System -> Konfiguracja -> Zaawansowane). Nie wyłącza to jednak całkowicie modułu. Ale może wystarczy, że chcesz się przed tym ukryć.
Jedyną rzeczą, o której myślę, jest napisanie kodu, który to umożliwi. Wystarczy sprawdzić, czy jest w trybie programisty ( Mage::getIsDeveloperMode()
), a następnie wyłączyć moduły. Znalazłem więcej szczegółów na temat osiągnięcia tego tutaj: /programming/6520634/magento-how-to-disable-module-programmatically
local
modułów zmusi cię do przeniesienia wszystkich innych modułów z local
codePool do, community
a także do wszystkich przyszłych rozszerzeń. Wyłączanie modułów wyjściowych, tak jak powiedziałeś, nadal pozwala na rozszerzenie spowalniające twój sklep. A trzecie rozwiązanie będzie wymagało modyfikacji, które zostaną zastąpione aktualizacją rozszerzenia (rozszerzeń).
Zwykle po prostu umieszczam je w moim środowisku testowym, ale nie sprawdzam ich w systemie kontroli wersji, na przykład za pomocą .gitignore
pliku, aby wykluczyć ich z rozważania o popełnienie.
Na konferencji Imagine 2011 znajduje się slajd Erika Hansena. Podał kod na slajdzie, który jest jak poniżej (dla trybu programisty)
# File : index.php
if(preg_match('/^stage\.|\.dev$/', $_SERVER['HTTP_HOST'])) {
$_SERVER['MAGE_IS_DEVELOPER_MODE'] = true;
}
tutaj Erik włącza ustawienie oparte na subdomenach, które można dostosować samodzielnie.