'Drush değişken seti'nin yerine geçen komut nedir?


14

Drupal 8'de Drush komutu drush variable-setartık çalışmıyor.

Okumadan ( burada ) Drupal 8'in eski (Drupal <= 7) "değişkenlerin" yerini alan yeni bir "yapılandırma" sistemi olduğu anlaşılıyor. Fakat aynı amaçlara ulaşmak için yeni Drush komutu nedir?

Özellikle komutları dönüştürmek istiyorum:

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

yeni Drupal8 / Drush8 eşdeğerine ...

Yanıtlar:


18

Biraz daha araştırma yaptıktan sonra yeni komut şöyle görünüyor:

  • drush config-set <config-name> <key>(eski biçimin olduğu yerde drush variable-set <name> <value>). Alias: cset.

: Pek emin ben bu hakkı olduğuna değilim Yani, ancak (yorum ve / veya ... çok iyi olurdu olan birinden başka bir yanıt böylece) o e-postaları içerir yapılandırma gibi görünüyor contact.form.feedback recipients, update.settings notification.emailsve system.site mail.

Bu güncelleme bazı iyi tartışmaların sonucudur (aşağıda). Bazı ayarların dizeler yerine diziler olduğunu unutmayın:

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

bunu güncellemek için çalıştırmanız gerekir:

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

Kaynak: Drupal 8 için Kaldıraç Drush 7 .

Not: Drush 7 artık Drupal 8'i desteklememektedir, ancak yine de geçerlidir.


1
Ayrıca bir düzenleyicide dosyayı düzenlemenizi sağlayan dred cedit de var. Sanırım bir listeye ayarlamak için report.emails.0 ya da daha fazlasına ihtiyacınız olacak, emin değilim.
— Berdir

Değiştirilen biçim, bildirimlerinizin başarısız olmasına neden olabilir. Orijinal durumda (yani birden çok e-posta adresi) emailiçeren bir dizidir admin@example.com, ancak sonuçta emailiçeren bir dizeye admin2@example.com(yani tek e-posta adresi) dönüştünüz.
— Alma

@Alma - Uyarı için teşekkürler. Dizi olarak girildiğinden nasıl emin olabilirim?
— Jeremy Davis

1
Evet. Berdir'in çözümü işe yarıyor. Böylece "drush config-set update.settings bildirimi.emails.0 admin@example.com" yapmalısınız. Şimdi kendim test ettim.
— Alma

1
A drush config-list, ayrıştırmanız için olası tüm yapılandırma kategorilerini yazdıracaktır. Eğer hepsini bulmak için ihtiyacınız varsa.
— Eric Steinborn

5

Ek takip,

Alınacak veya ayarlanacak olan yapılandırmanın tanımlayıcılarını bulmak için,

  • Sadece sistem ayarları formlarını inceleyerek değişkenlerin makine adlarında daha uzun tahmin yapamazsınız. Eskiden birçok yapılandırma ekranında görülen form öğesi arasında 1: 1: 1 eşleşme vardı , vset / vget $config['varname']içine koyabilirsiniz $settings.phpve
  • Kullanıcı admin/config/development/configuration/singlearabirimindeki (adresinde bulunan ) yapılandırma yöneticisi değişken bir tarayıcı sunar.

Ben local.settings.phpaşağı doğru zaman css & js toplama her zaman devre dışı bırakmak benim güncellemek istedim .

D7:

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

D8:

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

(Ve bu tür geçersiz kılmanın Yönetici arayüzünüzde görünmeyeceğini veya drush config-getetkili olacağını unutmayın)


Toplulaştırmayı devre dışı bırakma komutu: drush -y config-set system.performance css.preprocess 0&&drush -y config-set system.performance js.preprocess 0
— leymannx

3

Bu benim için çalıştı. Bu bir Drush PHP EVAL komutudur.

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

Burada MY_VARIABLE durumunu ayarlamak için kullanılıyor

Ayrıca bir değişkenin durumunu da alabilirsiniz :

drush ev 'echo \Drupal::state()->get("MY_VARIABLE")'
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.