Drupal 7'den Drupal 8'e bir modül taşıyorum. Bu modülün yapılandırma ayarlarında şu anda var olan alan türlerinin listesini almam gerekiyor.
Drupal 7'de bu field_info_field_types()
fonksiyon kullanılarak başarıldı .
Drupal 8'de (8.0.0-rc3), Drupal API Referans Yardımı sayfasında belirtilen bilgilere rağmen, güncelliğini yitirmiş bir "işlev yok" hatası alıyorum .
Daha sonra araştırmak , fonksiyonun kullanımdan kaldırıldığı bildirilen bir DrupalContrib sayfası buldum ve şimdi kullanmayı önerdimDrupal::service('plugin.manager.entity.field.field_type')->getDefinitions()
.
Ama bunu kullanarak başka bir hata "Bilinmeyen hizmet plugin.manager.entity.field.field_type", neyse ki "plugin.manager.field.field_type?"
Ben Drupal::service('plugin.manager.field.field_type')->getDefinitions()
ve wow kullanmayı denedim : Beklenen alan türleri dizi var.
Ancak her dizi üyesi (bir alan türü) artık bir nesne (alt dizi yerine) ve aradığım veriler korumalı özellikler içinde iç içe geçmiş, bu yüzden onlara erişemiyorum.
Bu aşamada takıldım. Bu verilerde gezinmek için genişletebileceğim bazı sınıflar olabileceğini düşündüm, ancak hiç şans olmadan: Özellikle alan türleri tanımlarının merkezileştirildiği Drupal 8'de hangi bileşen olduğunu bile anlayamadım.