Drupal 7에서 Drupal 8로 모듈을 포팅하고 있습니다.이 모듈의 구성 설정에서 현재 존재하는 필드 유형 목록을 가져와야합니다.
Drupal 7에서는이 field_info_field_types()
기능을 사용하여이 작업을 수행했습니다 .
Drupal 8 (8.0.0-rc3)에서 Drupal API 참조 도움말 페이지에 명시되어있는 정보에도 불구하고 "기능이 존재하지 않습니다"라는 오류가 발생 합니다.
그런 다음 조사 결과 DrupalContrib 페이지가 발견되었습니다.이 페이지 에서 함수가 더 이상 사용되지 않는 것으로 선언되어 현재 사용할 것을 제안합니다 Drupal::service('plugin.manager.entity.field.field_type')->getDefinitions()
.
그러나 이것을 사용하면 "Unknown service plugin.manager.entity.field.field_type"이라는 오류가 발생합니다. 다행히 "plugin.manager.field.field_type?"
그래서 사용 Drupal::service('plugin.manager.field.field_type')->getDefinitions()
하고 와우를 시도했습니다 : 예상되는 필드 유형 배열을 얻었습니다.
그러나 각 배열 구성원 (하나의 필드 유형)은 이제 자식 배열 대신 객체이며 찾고있는 데이터는 보호 된 속성 내에 중첩되어 있으므로 액세스 할 수 없습니다.
이 단계에서 나는 붙어 있습니다. 필자는 이러한 데이터를 탐색하기 위해 확장 할 수있는 클래스가있을 수 있다고 생각했지만 운이 없었습니다. 필드 유형 정의가 집중되어있는 Drupal 8의 구성 요소를 파악할 수 없었습니다.