Estoy transfiriendo un módulo de Drupal 7 a Drupal 8. En la configuración de este módulo, necesito obtener la lista de los tipos de campo existentes actualmente.
En Drupal 7, esto se logró usando la field_info_field_types()
función.
En Drupal 8 (8.0.0-rc3), recibo un error "la función no existe", a pesar de la información indicada en una página de ayuda de referencia de API de Drupal , claramente desactualizada.
Luego investigando encontré una página DrupalContrib , donde la función se declara obsoleta, y proponiendo usarla ahora Drupal::service('plugin.manager.entity.field.field_type')->getDefinitions()
.
Pero usarlo dispara otro error "Servicio desconocido plugin.manager.entity.field.field_type", afortunadamente asociado a la sugerencia "¿Te refieres a plugin.manager.field.field_type?"
Así que intenté usar Drupal::service('plugin.manager.field.field_type')->getDefinitions()
y wow: obtuve la matriz esperada de tipos de campo.
Pero cada miembro de la matriz (un tipo de campo) ahora es un objeto (en lugar de una matriz secundaria), y los datos que estoy buscando están anidados dentro de las propiedades protegidas, por lo que no puedo acceder a ellos.
En esta etapa, estoy atascado. Pensé que podría existir alguna clase que podría expandir para navegar a través de estos datos, pero sin suerte: notablemente ni siquiera pude averiguar cuál es el componente en Drupal 8 donde las definiciones de tipos de campo están centralizadas.