web-dev-qa-db-fra.com

Quelle est la commande qui remplace «drush variable-set»?

Dans Drupal 8 la commande Drush drush variable-set ne fonctionne plus.

D'après la lecture ( ici ), il apparaît que Drupal 8 a un nouveau système de "configuration" qui remplace les anciennes "variables" (Drupal <= 7). Mais ce qui est la nouvelle commande Drush pour atteindre les mêmes fins?

Plus précisément, je veux convertir les commandes:

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

au nouvel équivalent Drupal8/Drush8 ...

15
Jeremy Davis

Après quelques recherches supplémentaires, il semble que la nouvelle commande soit:

  • drush config-set <config-name> <key> (où l'ancien format était drush variable-set <name> <value>). Alias: cset.

Je ne suis donc pas totalement sûr d'avoir ce droit (donc un commentaire et/ou une autre réponse de quelqu'un qui le ferait serait bien ...), mais il semble que la configuration qui inclut les e-mails soit: contact.form.feedback recipients, update.settings notification.emails et system.site mail.

Cette mise à jour est le résultat d'une bonne discussion (ci-dessous). Notez que certains paramètres sont des tableaux (plutôt que des chaînes):

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

pour mettre à jour cela, vous devez exécuter:

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

Source: Tirez parti de Drush 7 pour Drupal 8 .

Remarque: Drush 7 ne prend plus en charge Drupal 8, mais cela s'applique toujours.

19
Jeremy Davis

Suivi supplémentaire,

Pour trouver les identifiants pour la configuration à obtenir ou à définir,

  • Vous ne pouvez plus deviner les noms de machine des variables simplement en inspectant les formulaires de paramètres système. Il existait auparavant une correspondance 1: 1: 1 entre l'élément de formulaire vu sur de nombreux écrans de configuration, le $config['varname'] vous pourriez mettre dans $settings.php, et drush vset/vget
  • Le gestionnaire de configuration dans l'interface utilisateur (trouvé dans admin/config/development/configuration/single) fournit quelque chose d'un navigateur de variables.

Je voulais mettre à jour mon local.settings.php pour toujours désactiver l'agrégation css & js lors de la synchronisation descendante.

D7:

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

D8:

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

(Et notez que ce type de remplacement NE SERA PAS affiché dans votre interface d'administration ou dans drush config-get ... bien que cela prenne effet)

5
dman

Cela a fonctionné pour moi. C'est une commande Drush PHP EVAL.

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

Ici, il est utilisé pour définir l'état de MY_VARIABLE

Vous pouvez également get l'état d'une variable:

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