답변:
hook_schema()Drupal 8 모듈에서 여전히 사용되어 모듈에서 사용되는 사용자 지정 데이터베이스 테이블을 만듭니다. 하지만 심지어 사용자 및 노드 모듈은, 그것을 구현 user_schema()하고 node_schema()다른 방법으로 생성 된 각각의 개체에 대한 스키마를 정의하지 않습니다.
구성 스키마는 사용자 정의 데이터베이스 테이블을 모듈 사용을 만드는 데 사용하지만, 구성 파일의 구조를 설명하지 않습니다. 내가 링크 한 문서에있는 PDF 파일은 구성 파일과 스키마 간의 관계를 명확하게합니다.
콘텐츠 엔터티는 사용하지 않습니다 hook_schema(). Drupal은 컨텐츠 엔티티 클래스가 정의하는 기본 필드를 기반으로 데이터베이스 테이블을 작성합니다.
사용할 방법은 모듈이 정의한 내용에 따라 다릅니다. 컨텐츠 엔터티, 구성 엔터티를 정의하거나 사용자 지정 테이블을 사용하는 것은 모듈에 달려 있습니다. 모듈은 모든 모듈을 사용할 수도 있습니다.
Drupal에는 다른 더 많은 기본 솔루션이 있지만 원하는 경우 후크 설치를 사용하여 원하는 테이블을 만들 수 있습니다. 그러나 직접 롤백하려면 예제 모듈 ( https://www.drupal.org/project/examples) 에 dbtng_example이라는 예제 모듈이 있으며, 사용자 지정 데이터베이스 항목을 추가 및 제거하기위한 라우팅이 완료되어 있습니다.
설치하고 사용해 보는 것이 좋습니다. Drupal 8에서 자체 데이터베이스 테이블을 만들기위한 기초로 사용할 수 있습니다.
고려해야 할 또 다른 방법은 구성 엔터티 또는 콘텐츠 엔터티를 만드는 것입니다.
drupal 명령 행 도구를 사용하는 경우 이러한 "drupal generate : entity : config"및 "drupal generate : entity : content"를 생성하는 명령도 있습니다.
또한 예제 모듈에는 config_entity_example 및 content_entity_example이 있습니다.
에서 https://www.previousnext.com.au/blog/understanding-drupal-8s-config-entities : "내용과 설정 엔티티 사이의 주요 차이점은 (순간)가 저장되는 방법과 설정 엔티티 fieldable 없습니다 ".
config_pages 모듈과 같은 기본 제공 솔루션 중 일부는 사이트에 데이터를 저장할 위치를 쉽게 회전시킬 수 있습니다. https://www.drupal.org/project/config_pages
우리는 최근에 컨트롤러와 경로를 생성하여 오프 랜딩 페이지에 사용했습니다. 새 필드를 쉽게 추가 할 수 있고 이미지 및 엔티티 참조와 같은 데이터 유형을 쉽게 사용할 수 있으며 필드 포맷터를 설정하고 config_pages 엔티티보기 빌더를 사용하여 형식화 된 데이터를로드 할 수 있으므로 사용자 정의 테이블에 비해 큰 이점이 있습니다.
hook_schemaDrupal 8에서 사용자 정의 테이블을 작성하는 방법 입니다. 사용자 정의 테이블이 "콘텐츠"로 간주되는 항목이라면 엔티티를 사용하지만 더 빠를 필요가 있고 행 수가 제한되어 프런트 엔드에서 캐싱을 수행하지 않으면 사용자 정의 테이블 괜찮습니다. 또한이 테이블이 "구성"인지 여부를 고려해야합니다.이 경우 구성 엔터티 또는 개체가 사용됩니다.