Відповіді:
Є два відносно нові методики для цього:
Використовуйте модман, щоб ви могли самостійно контролювати, що розгорнути для кожного середовища. Це означає, що ви працюєте modman deploy [name-of-dev-extension]
лише у вашому середовищі розробників.
Використовуйте магент-композитор з різними composer.json
сценаріями для різних середовищ. І ще простіший спосіб - вказати ці розширення як dev-модулі, а потім встановити проект за допомогою --require-dev
перемикача на вашій розроблювальній машині.
Зазвичай їх можна вимкнути за допомогою прапора конфігурації, тому вони технічно активні, але нічого не роблять. Якщо ви встановите цей прапор неправдивим у app/etc/local.xml
своїй живій системі, вам слід буде добре.
local.xml
файл у вашому репо. Що може бути випадком.
local.xml
зазвичай немає у репо
Дивіться MageTrashApp, який був створений нещодавно на Хакатоні Magento в Берліні. Дозволяє деактивувати модулі через панель адміністратора.
Простий спосіб зробити це - відключити модуль в / etc / module, натиснути його, ігнорувати файл локально і знову включити його.
Я думаю, що найкращий спосіб вирішити це - або зберегти всі ці модулі в локальному codePool і відключити всі локальні модулі в прямому ефірі за допомогою цієї лінії у вашому local.xml:
<disable_local_modules>true</disable_local_modules>
Або ви можете зробити "Вимкнути вихід модуля" у вихідному середовищі у вашому прямому середовищі. (Система -> Конфігурація -> Додатково). Однак це не повністю відключить модуль. Але, можливо, достатньо лише того, щоб ти хотів цього заховати.
Єдине, що я можу придумати, - це написати якийсь код, який може витягнути це. Просто перевірте, чи знаходиться він у режимі розробника ( Mage::getIsDeveloperMode()
), а потім відключіть модулі. Більше деталей щодо цього я знайшов тут: /programming/6520634/magento-how-to-disable-module-programmatic
local
модулів змусить вас перемістити всі інші модулі з local
codePool community
і зробити це для всіх майбутніх розширень. Як ви сказали, вимкнення модулів виводить все ще дозволяє розширення, сповільнюючи ваш магазин. І 3-е рішення потребуватиме модифікацій, які будуть перезаписані оновленням розширень.
Зазвичай я просто ввожу їх у тестувальне середовище, але не перевіряю їх у системі контролю версій, наприклад, використовуючи .gitignore
файл, щоб виключити їх з точки зору вчинення.
На конференції Imagine 2011 Еріка Хансена є слайд. Він вказав код на слайді, який наведений нижче (для режиму розробника)
# File : index.php
if(preg_match('/^stage\.|\.dev$/', $_SERVER['HTTP_HOST'])) {
$_SERVER['MAGE_IS_DEVELOPER_MODE'] = true;
}
ось, Ерік дозволяє налаштувати на основі субдоменів, які ви можете налаштувати самостійно.