web-dev-qa-db-ja.com

「drush variable-set」を置き換えるコマンドは何ですか?

Drupal 8では、Drushコマンドdrush variable-setが機能しなくなりました。

ここ )を読むと、Drupal 8には、古い(Drupal <= 7)の「変数」に代わる新しい「構成」システムがあるようです。しかし、同じ目的を達成するための新しいDrushコマンド?

具体的には、コマンドを変換したい:

drush variable-set site_mail [email protected]
drush variable-set update_notify_emails [email protected]

新しいDrupal8/Drush8同等のものに...

15
Jeremy Davis

もう少し調べてみると、新しいコマンドは次のようです。

  • drush config-set <config-name> <key>(古い形式はdrush variable-set <name> <value>)。エイリアス:cset

したがって、私がこの権利を持っていることを完全に確信しているわけではありませんが(そうすることで、誰かからのコメントや別の回答が素晴らしいと思います...)、電子メールを含む構成は次のようです:contact.form.feedback recipientsupdate.settings notification.emailsおよびsystem.site mail

この更新は、いくつかの良い議論の結果です(下記)。一部の設定は(文字列ではなく)配列であることに注意してください。

www/drupal8# drush config-get update.settings notification
'update.settings:notification':
  emails:
    - [email protected]
  threshold: all

これを更新するには、次を実行する必要があります。

drush -y config-set update.settings notification.emails.0 [email protected]

出典: Drush 7 for Drupal 8

注:Drush 7はDrupal 8をサポートしなくなりましたが、これは引き続き適用されます。

19
Jeremy Davis

追加のフォローアップ、

取得または設定する構成の識別子を見つけるには、

  • システム設定フォームを調べるだけで、変数のマシン名を推測することはできません。以前は、多くの構成画面に表示されるフォーム要素、$config['varname']$settings.phpの間にある1:1:1の一致と、drush vset/vgetがありました
  • UIの構成マネージャー(admin/config/development/configuration/singleにあります)は、変数ブラウザーのようなものを提供します。

local.settings.phpを更新して、ダウンシンク時に常にcss&js集計を無効にしたいと思いました。

D7:

$conf['preprocess_css'] = FALSE;
$conf['preprocess_js'] = FALSE;

D8:

$config['system.performance']['css']['preprocess'] = 0;
$config['system.performance']['js']['preprocess'] = 0;

(このタイプのオーバーライドは、管理UIまたはdrush config-get ...には表示されませんが、有効になります)

5
dman

これでうまくいきました。これはDrush PHP EVALコマンドです。

drush ev '\Drupal::state()->set("MY_VARIABLE", "MY_VALUE")'

ここでは、MY_VARIABLEの状態を設定するために使用されています

get変数の状態もできます。

drush ev 'echo \Drupal::state()->get("MY_VARIABLE")'
3
Parag