Admin-menuのEnable Developer Modulesメニュー項目が大好きです。これをコマンドラインから切り替えるにはどうすればよいですか?
管理メニューには、すでにsettings.phpで設定された「開発者」モジュールの構成があります。この配列にはdrush vget admin_menu_devel_modules
でアクセスできます(まあ、2つのエントリを返します)。次に、それらのアイテムをdrush enable
に「パイプ」します。それが文字通り不可能ではないことは知っていますが、これは私の思考プロセスです。
このコマンドをスクリプト化するにはどうすればよいですか?
私は、必要なすべての開発者モジュールに依存するカスタムモジュールを用意したいと思っています。また、このモジュールを設定して、いくつかの強力な変数(css/jsの前処理やページキャッシングをオフにするなど)を設定し、Contextを使用していくつかの開発者ブロックを有効にします(PHPの実行やコンテキストインスペクターなど)。これにより、1つのモジュールをドラッシュ/ディスディスプして、すべての開発者ユーティリティをオン/オフにすることができます。
これが私のLullabot開発モジュールです 例として参照できます。
最もクリーンなオプションは、独自のDrushコマンドを最初から作成することです。それらはひどく複雑である必要はありません- 'sandwich'コマンド はDrushと共にインストールされ、Niceテンプレートとして機能します。
Antやphingなどのビルドフレームワークを使用する別の可能性は、完璧な開発環境をセットアップするために実行する必要があるすべてのタスクを使用して、build.xmlファイルでターゲットを定義することです。別のターゲットを定義して、最初のターゲットを元に戻すことができます。これにより、2つのモードを自由に切り替えることができます。
そのようなターゲットの簡単な例を以下に示します
<target name="en-dev">
<exec command="drush --yes en devel devel_themer coder" />
<exec command="drush --yes perm-grant 'Authenticated User' 'access devel'" />
<exec command="drush --yes perm-grant 'Annonymous User' 'access devel'" />
</target>
<target name="dis-dev">
<exec command="drush --yes dis devel devel_themer coder" />
<exec command="drush --yes perm-revoke 'Authenticated User' 'access devel'" />
<exec command="drush --yes perm-revoke 'Annonymous User' 'access devel'" />
</target>
この場合、phing en-dev
開発環境をセットアップします。
反対の関数については、phing dis-dev
drush pm-enable `drush php-eval "echo 'ctools'"`
これはctoolsを有効にしようとします。 echo ctoolsを、モジュール間にスペースを入れてフォーマットするものに変更します
この状況ではテストされていませんが、 xargs は1つのコマンドの結果を受け取り、次の引数としてパイプすることができます
drush vget admin_menu_devel_modules | xargs drush en
vgetが返す変数が好みに合わせない場合は、途中で少しsedを実行する必要があるかもしれません。