"엔터티 API"는 Drupal API에 추가되는 이유는 무엇이며 모듈이 왜 그것에 의존합니까?


12

엔티티 API의 모듈은 드루팔에 정의 된 엔티티 API를 확장합니다. 어떤 경우에 모듈은 해당 모듈에서 제공된 API를 사용해야합니까? Entity API 모듈 에 의존하는 경우 새 엔티티를 구현하는 모듈을보다 쉽게 ​​작성할 수 있습니까?

"보다 쉽게 ​​작성"한다는 것은 Entity API를 사용 하는 모듈이 Entity API를 사용하지 않는 모듈에 비해 적은 코드를 작성해야 한다는 것을 의미합니다 .

프로젝트 페이지를 읽었지만 Drupal 코어 코드에만 의존하는 모듈이 아닌 Entity API 모듈 에 의존하는 모듈을 선호하는 이유를 여전히 이해하지 못합니다 . 규칙을 확장하고 엔티티를 구현하는 모듈 은 Entity API 모듈을 사용해야한다는 것을 이해합니다 . 첫 번째 경우에는 규칙 모듈이 엔티티 API 모듈 에 의존 하기 때문입니다 .


1
링크 한 프로젝트 페이지는 모듈의 기능에 대한 상당히 구체적인 개요를 제공합니다. 모듈이 배치 한 것 이외의 모듈에 의존하는 이유에 대한 구체적인 질문이 있습니까?
jhedstrom

당신이 엔티티 API 모듈을 사용하지 않는 경우와 같은 모듈을 작성 결국 이 샌드 박스 프로젝트를 . 이 샌드 박스 프로젝트에는 테스트가없고 기여자가 하나 뿐인 반면 Entity API에는 두 가지 모두가 많이 있습니다.
paul-m

답변:


15

완전하지는 않지만 여기에 내가 알고있는 몇 가지 장점이 있습니다.

  • Drupal 코어는 엔티티로드를위한 EntityController 만 제공합니다. 저장, 업데이트 및 삭제를 위해서는 직접 작성하거나 Entity API를 사용해야합니다.
  • hook_entity_property_info () 엔티티의 기본 속성을 노출 할 수 있습니다 . 예제는 privatemsg_entity_property_info () 를 참조하십시오 . 이것의 장점은 rules.module이 엔티티 속성을 알고 규칙으로 읽고 쓰는 것입니다. 또한 토큰 통합도 무료로 제공됩니다.
  • 또한 엔티티에 대한 관리 UI를 자동으로 제공 할 수 있습니다

관리자 UI의 의미는 무엇입니까? 이 중 일부는 코어에서 처리합니다.
googletorp

2
Core는 필드를 구성하고 엔터티에 연결하기위한 UI를 제공하고 엔터티 API는 사용자 지정 엔터티에 대한 엔터티를 생성 및 관리하기위한 UI를 제공합니다.
Berdir

1
훌륭한 metadata_wrapper drupalcontrib.org/api/drupal/… 을 잊지 마십시오 . 코드에서 필드 값에 쉽게 액세스 할 수 있습니다.
mojzis

7

자동 뷰 통합, 관리 UI, 내보낼 수있는 엔티티 (모두 선택 사항). 또한 D7로 만들지 않은 많은 구문 설탕 것들이 필요합니다 (일반 엔티티 _ 저장 (), entity_create (), 커스텀 로직을 "엔티티 클래스"에 넣습니다 ...)

또한 모듈 (efq_views, rules)은 속성으로 정말 멋진 일을합니다.


-1

나는 엔티티 API (모듈)가 불완전한 것으로 간주되기 때문에 기본적으로 릴리스 전에 drupal 7 코어에서 제거되었다고 생각합니다. GM 릴리스를 위해 drupal 코어에 남아있는 기본 엔티티 API CRUD 만 작동합니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.