Що таке команда, яка замінює "drush змінної набору"?


14

У Drupal 8 команда Drush drush variable-setбільше не працює.

З читання ( тут ) виходить, що Drupal 8 має нову систему "конфігурації", яка замінює старі (Drupal <= 7) "змінні". Але яка нова команда Друша для досягнення тих же цілей?

Конкретно я хочу перетворити команди:

drush variable-set site_mail someone@email.com
drush variable-set update_notify_emails someone@email.com

до нового еквівалента Drupal8 / Drush8 ...

Відповіді:


18

Після ще декількох досліджень здається, що нова команда:

  • drush config-set <config-name> <key>(де був старий формат drush variable-set <name> <value>). Псевдонім : cset.

Так що я не зовсім впевнений , що у мене є це право (так коментарі та / або іншу відповідь від кого - то , хто робить б здорово ...), але мені здається , що конфігурація , яка включає в себе електронну пошту є: contact.form.feedback recipients, update.settings notification.emailsі system.site mail.

Це оновлення є результатом хорошого обговорення (нижче). Зауважте, що деякі налаштування - це масиви (а не рядки):

www/drupal8# drush config-get update.settings notification
'update.settings:notification':
  emails:
    - admin@example.com
  threshold: all

для оновлення цього потрібно запустити:

drush -y config-set update.settings notification.emails.0 admin2@example.com

Джерело: Leverage Drush 7 для Drupal 8 .

Примітка: Drush 7 більше не підтримує Drupal 8, але це все ще стосується.


1
Також є drush cedit, що дозволяє редагувати файл у редакторі. Я думаю, вам знадобиться noti.emails.0 або близько того, щоб встановити його до списку, не впевнений.
Бердір

Змінений формат може призвести до відмови ваших сповіщень. У початковому випадку emailце масив, що містить admin@example.com(тобто декілька адрес електронної пошти), але в результаті ви перетворилися emailна рядок, що містить admin2@example.com(тобто одну адресу електронної пошти).
Алма

@Alma - Дякую за голову. Як переконатися, що він потрапив як масив?
Джеремі Девіс

1
Так. Рішення Бердіра працює. Отже, ви зробите "drush config-set update.settings noti.emails.0 admin@example.com". Просто випробував це зараз.
Алма

1
A drush config-listнадрукує кожну можливу категорію конфігурації, яку ви зможете проаналізувати. У випадку, якщо вам коли-небудь потрібно знайти їх усіх.
Ерік Штейнборн

5

Додаткове спостереження,

Щоб знайти ідентифікатори для отримання або встановлення конфігурації,

  • НІКОЛИ НЕ БУДЕТ здогадуватися про назви машин змінних, просто перевіривши форми налаштувань системи. Раніше збіг 1: 1: 1 між елементом форми, який можна побачити на багатьох екранах конфігурації, $config['varname']ти можеш поставити в них $settings.phpі натиснути vset / vget
  • Конфігураційний менеджер у інтерфейсі (знайдений у 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;

(І зауважте, що цей тип заміни НЕ відображатиметься у вашому інтерфейсі адміністратора чи в drush config-get... хоча він набуде чинності)


Команда Drush для відключення агрегації тоді: drush -y config-set system.performance css.preprocess 0&&drush -y config-set system.performance js.preprocess 0
leymannx

3

Це працювало для мене. Це команда Drush PHP EVAL.

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

Тут він використовується для встановлення стану MY_VARIABLE

Ви також можете отримати стан змінної:

drush ev 'echo \Drupal::state()->get("MY_VARIABLE")'
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.