回答:
それを行うには、比較的新しい2つの手法があります。
modmanを使用して、各環境に何をデプロイするかを自分で制御できるようにします。これはmodman deploy [name-of-dev-extension]
、開発環境でのみ実行することを意味します。
環境ごとに異なるシナリオでmagento-composerを使用しcomposer.json
ます。さらに簡単な方法は、これらの拡張機能を--require-dev
開発モジュールとして指定し、開発マシンのスイッチを使用してプロジェクトをインストールすることです。
これらは通常、構成フラグで簡単に無効にできるため、技術的にはアクティブですが、何もしていません。app/etc/local.xml
ライブシステムでこのフラグをfalseに設定した場合は、問題ありません。
local.xml
レポジトリにファイルを保持する場合を除き、適切なソリューションです。それはケースかもしれません。
local.xml
通常レポにありません
最近ベルリンのMagento Hackathonで作成されたMageTrashAppをご覧ください。管理パネルからモジュールを無効化できます。
これを行う簡単な方法は、/ etc / modules内のモジュールを無効にしてプッシュし、ローカルでファイルを無視してから再度有効にすることです。
これに対処する最善の方法は、これらのモジュールをすべてローカルcodePoolに保持し、local.xmlの次の行ですべてのローカルモジュールをライブで無効にすることです。
<disable_local_modules>true</disable_local_modules>
または、ライブ環境のバックエンドで「モジュール出力を無効にする」こともできます。(システム->構成->詳細)。ただし、これによりモジュールが完全に無効になるわけではありません。しかし、多分それはあなたがそれを隠したいのに十分なだけです。
私が考えることができる他の唯一のものは、これを実行できるコードを書くことです。開発者モード(Mage::getIsDeveloperMode()
)であるかどうかを確認し、モジュールを無効にします。ここでこれを達成するための詳細をいくつか見つけました:https : //stackoverflow.com/questions/6520634/magento-how-to-disable-module-programmatically
local
モジュールを無効にすると、他のすべてのモジュールをlocal
codePool から移動しcommunity
、将来のすべての拡張機能に対しても強制的に移動します。あなたが言ったようにモジュール出力を無効にすると、拡張機能が実行されてストアが遅くなります。また、3番目のソリューションでは、拡張機能の更新で上書きされる変更が必要になります。
通常はテスト環境に配置するだけですが、たとえば、.gitignore
ファイルを使用してコミットの対象から除外するなどして、バージョン管理システムにチェックインしません。
Erik HansenによるImagine 2011カンファレンスにスライドがあります。彼は以下のようなコードをスライドに記載しました(開発者モード用)
# File : index.php
if(preg_match('/^stage\.|\.dev$/', $_SERVER['HTTP_HOST'])) {
$_SERVER['MAGE_IS_DEVELOPER_MODE'] = true;
}
ここでは、Erikがサブドメインに基づいて設定を有効にし、それを自分でカスタマイズできます。