> 백엔드 개발 > PHP 튜토리얼 > Drupal -Setup에서 자신의 사용자 정의 엔터티를 구축하십시오

Drupal -Setup에서 자신의 사용자 정의 엔터티를 구축하십시오

William Shakespeare
풀어 주다: 2025-02-21 10:59:08
원래의
331명이 탐색했습니다.

Build Your Own Custom Entities in Drupal - Setup

키 포인트

Drupal의 엔티티는 데이터를 구성하는 강력한 방법이며 특정 유형의 정보를 나타내도록 사용자 정의 할 수 있습니다. 이 튜토리얼은 제목, 설명 및 마감일과 같은 속성을 포함하는 프로젝트라는 커스텀 엔티티 유형을 만드는 방법을 보여줍니다. 새 엔티티 유형을 만들려면 스키마 정의가 선언되어야하며, 이는 데이터베이스 엔티티 데이터 테이블을 생성합니다. 이 튜토리얼은 4 개의 열 (ID, 이름, 설명 및 마감일)이있는 "demo_projects"테이블을 작성하기위한 코드 예제를 제공합니다.

Entity API 모듈은 귀하의 사이트에서 활성화되어 있고 사용자 정의 모듈의 종속성으로 설정되어 있어야하며, 이는 Drupal Core가 부족한 많은 엔티티 처리 기능을 제공합니다. 여기에는 새로운 엔티티 작성, 데이터베이스에 저장 및 표시가 포함됩니다.
    이 자습서는 또한 기본 EntyApicOntroller 클래스의 BuildContent () 메소드를 엔터티를 표시하여 Entity_View () 도우미 기능을 통해 엔티티 목록을 작성하는 방법을 설명합니다. 튜토리얼의 두 번째 부분은 개별 프로젝트 엔티티를 표시하는 페이지 생성을 소개하여 UI를 통해 전계를 가능하게하고 쿼리 및 목록 디스플레이보기에 노출시킵니다.
  • Drupal Entities는 데이터를 구성하는 좋은 방법입니다. 노드, 분류 용어, 댓글 또는 사용자에 익숙하다면 Drupal 7 이후 엔티티임을 알고 있어야합니다. 그들에 대한 또 다른 중요한 측면은 필드 API를 통해 전류 될 수 있다는 것입니다.
  • 이 튜토리얼에서는 자신의 커스텀 엔티티 유형을 정의하고 시작하는 방법을 보여 드리겠습니다. 왜 누구든지 노드를 사용하는 대신 이것을하고 싶어합니까? 훌륭하지만 노드는 때때로 지나치게 복잡 할 수 있습니다. 개정이나 의견과 같은 많은 기능이 필요하지 않을 수 있습니다.
  • 이 자습서에서는 프로젝트 (제목, 설명 및 마감일)에 대한 간단한 정보를 나타내기 위해 "Project"라는 고유 한 사용자 정의 엔티티 유형을 정의합니다. 그런 다음이 유형의 엔티티를 사용하는 것에 대해 조금 배울 것입니다.
  • 계속 학습을 위해 기본 사용자 정의 모듈을 작성하는 방법을 알고 있다고 가정합니다 (내 모듈은 데모라고합니다). 이 주제에 대한 훌륭한 자습서를 여기에서 찾을 수 있습니다. .info 파일을 계속 작성하고 빈 .Module 및 .install 파일을 만듭니다. 또한이 튜토리얼의 모든 소스 코드를 얻을 수있는 git 저장소를 설정합니다 (각 섹션마다 하나의 지점, 두 섹션이 게시됩니다).
  • 또한 사이트에서 엔티티 API Contrib 모듈을 활성화하고 사용자 정의 모듈의 종속성으로 설정해야합니다. 엔티티 API 모듈은 Drupal Core가 부족한 많은 기능을 제공하기 때문에 엔티티를 처리 할 때 매우 강력합니다.
  • 우리 자신의 드 루 팔 엔티티 유형 정의 새 엔티티 유형 생성 먼저 스키마 정의를 선언해야합니다. 즉, 엔티티 데이터 데이터베이스 테이블을 생성하는 코드를 작성하십시오. 내 Demo.install 파일에는 다음 코드가 있습니다.
  • /**
     * Implements hook_schema().
     */
    function demo_schema() {
    
      $schema = array();
    
      $schema['demo_projects'] = array(
        'description' => 'The base table for the Project entity',
        'fields' => array(
          'id' => array(
            'description' => 'Primary key of the Project entity',
            'type' => 'serial',
            'unsigned' => TRUE,
            'not null' => TRUE,
          ),
          'name' => array(
            'description' => 'Project name.',
            'type' => 'varchar',
            'length' => 255,
            'not null' => FALSE,
          ),
          'description' => array(
            'description' => 'Project description.',
            'type' => 'text',
            'size' => 'big',
            'not null' => FALSE,
            'default' => NULL
          ),
          'deadline' => array(
            'description' => 'Project deadline.',
            'type' => 'int',
            'length' => 11,
            'not null' => FALSE,
          ),
        ),
        'primary key' => array('id'),
      );
    
      return $schema;
    }
    로그인 후 복사
    로그인 후 복사
    이것은 hook_schema ()의 간단한 구현입니다. demo_projects 테이블을 만듭니다. 큰 문제가 아닙니다.

    다음은 hook_entity_info ()를 구현해야합니다. 이 후크에서 많은 옵션을 지정할 수 있지만 여기에 가장 기본적이고 필요한 옵션이 있습니다 (이것은 Demo.Module 파일에 있습니다) : <🎜 🎜>.

    이 후크를 사용하면 엔티티 머신 이름을 나타내는 $ info 배열의 새 키를 반환합니다. 이 배열에서는 옵션을 지정합니다 (이 자습서에서 더 많은 옵션을 추가 할 것입니다). 이제 우리는 태그 (엔티티 유형의 읽기 가능한 이름), 엔티티 데이터를 저장하는 기본 테이블, 엔티티 식별자의 속성 역할을하는 엔티티 키 및 엔티티 유형을 지정하는 모듈을 사용하여 사용됩니다. 마지막은 필수는 아니지만 권장됩니다.

    <,> 이런 식으로, 우리는 자체 기본 엔티티 유형을 Drupal에 등록합니다. 작동하는지 테스트하려면 모듈을 처음으로 활성화하고 데이터베이스에서 테이블이 생성되었는지 확인하십시오. 그런 다음 사용할 것이 있도록 몇 줄로 채우십시오.

    마지막으로, hook_menu ()를 사용하여 Drupal을 사용하여 경로 (테스트를위한 경로에 대해)를 등록하고 다음을 콜백 함수에 붙여 넣습니다.
    /**
     * Implements hook_entity_info().
     */
    function demo_entity_info() {
    
      $info = array();
    
      $info['project'] = array(
        'label' => t('Project'),
        'base table' => 'demo_projects',
        'entity keys' => array(
          'id' => 'id',
          'label' => 'name',
        ),
        'module' => 'demo',
        'entity class' => 'Entity',
        'controller class' => 'ProjectEntityController',
      );
    
      return $info;
    }
    로그인 후 복사
    먼저, 우리는 entity_load () 함수를 사용하여 ID 1과 2가있는 프로젝트 엔티티를로드 한 다음 DEVEL DPM () 함수를 사용하여 (따라서 사이트에서 테스트를 위해 DEVEL이 활성화되어 있는지 확인)를 사용합니다. 스크린 우수합니다. 페이지의 콜백 함수가 무언가를 반환해야한다는 것을 잊지 마십시오. 그렇지 않으면 구축되지 않습니다.

위 내용은 Drupal -Setup에서 자신의 사용자 정의 엔터티를 구축하십시오의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿