Saya memindahkan modul dari Drupal 7 ke Drupal 8. Dalam pengaturan konfigurasi modul ini saya perlu mendapatkan daftar tipe-bidang yang saat ini ada.
Dalam Drupal 7, ini dicapai menggunakan field_info_field_types()
fungsi.
Dalam Drupal 8 (8.0.0-rc3), saya mendapatkan kesalahan "fungsi tidak ada", meskipun informasi yang dinyatakan oleh halaman Bantuan Referensi API Drupal , jelas ketinggalan zaman.
Kemudian menyelidiki saya menemukan halaman DrupalContrib , di mana fungsinya dinyatakan usang, dan mengusulkan untuk sekarang menggunakan Drupal::service('plugin.manager.entity.field.field_type')->getDefinitions()
.
Tetapi menggunakannya memicu kesalahan lain "Layanan tidak dikenal plugin.manager.entity.field.field_type", untungnya terkait dengan saran "Apakah maksud Anda plugin.manager.field.field_type?"
Jadi saya mencoba menggunakan Drupal::service('plugin.manager.field.field_type')->getDefinitions()
dan wow: Saya mendapatkan array tipe field yang diharapkan.
Tetapi setiap anggota array (satu tipe lapangan) sekarang menjadi objek (bukan array anak), dan data yang saya cari bersarang di dalam properti yang dilindungi, jadi saya tidak dapat mengaksesnya.
Pada tahap ini, saya mandek. Saya menganggap mungkin ada beberapa kelas yang bisa saya kembangkan untuk bernavigasi melalui data ini, tetapi tanpa hasil: Saya bahkan tidak dapat menemukan komponen dalam Drupal 8 di mana definisi tipe bidang terpusat.