node_load () 또는 entity_load () 중 언제 사용해야합니까?


24

제목은 모든 것을 말합니다.

entity_load는 데이터베이스 쿼리를 줄이면서 여러 노드를로드하는 성능적이고 효율적인 수단을 제공한다는 것을 이해하므로 해당 인스턴스에서 entity_load ()를 사용해야한다고 가정합니다. 그러나 하나의 노드 만 원할 때 어떤 노드를 사용해야합니까? 그리고 더 일반적인 entity_load () API를 선호하여 d8에서 node_load ()가 더 이상 사용되지 않습니까?

나는 같은 질문이 익숙한 user_load ()에도 해당한다고 생각합니다.


3
어 .. 코드를 먼저 읽었어야했는데 Node_load는 node_load_multiple에 대한 몇 가지 인수 검사가있는 래퍼 일 뿐이며, 이는 자체적으로 entity_load의 래퍼입니다. 따라서 entity_load ()를 직접 호출하는 것 외에는 몇 가지 추가 함수 호출을 저장하는 것을 제외하고는 성능이 다르지 않습니다. api.drupal.org/api/drupal/modules--node--node.module/function/…api.drupal.org/api/drupal/modules--node--node.module/function/…을 참조하십시오 .
토랜스

답변:


32

node_load에 대한 멋진 래퍼입니다 entity_load.

이것은 의 래퍼 인 node_load호출 node_load_multiple입니다 entity_load. 이는 성능면에서 많은 노드를로드하지 않는 한 실제로 사용하는 기능에 큰 차이가 없다는 것을 의미합니다.

node_load 에 비해 많은 장점이 있습니다 entity_load

  • 더 간단합니다
  • 코드 가독성 향상
  • 노드 객체가있는 배열 대신 노드 객체를 반환합니다.

따라서 node_load가능한 한 항상 사용하는 것이 편리하고 node_load_multiple더 많은 노드를로드해야하는 경우에 의존 해야합니다.

entity_load 유형을 모르거나 변수에 저장 한 경우 엔터티를로드하는 데 사용해야합니다.

entity_load($type, ...);

1
결국 node_load()우리가 익숙한 것입니다.
Sivaji

9

로드 할 단일 노드가 있으면 node_load ()를 사용하고 더 많은 노드가 있으면 node_load_multiple ()을 사용하십시오. 예를 들어 엔터티 유형을 미리 모르는 경우 entity_load ()를 직접 사용하십시오 entity_load($type, array($id)).

entity_load ()의 이름이 일치하지 않습니다. 실제로 여러 결과를로드하고 결과 배열을 리턴 할 수 있으므로 실제로 entity_load_multiple ()이어야합니다.


4

node_load()엔터티 API가 Drupal 7에 도입되기 전에 존재했던 함수입니다. 차이점은와 entity_load()같은 노드 객체로드에 특정한 매개 변수를 허용한다는 것 $vid입니다. 함수는 node_load_multiple(); 호환성을 위해 도움이되며 매개 변수가 적기 때문에 도움이됩니다.

$node = node_load($nid);
$nodes = entity_load('node', array($nid));

드루팔 8에서 node_load(), node_load_multiple()그리고 entity_load()사용되지 않습니다. Drupal 9가 안정적으로 릴리스 될 때 제거됩니다).
또한 Drupal 8에서는 Drupal 8 이후로 해당 기능에 대한 호출을 변경해야합니다.

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