Tôi đang làm việc trên tài liệu API thực thể tại đây: https://drupal.org/developing/api/entity .
Câu hỏi quá lớn để trả lời chi tiết và nó phụ thuộc vào việc bạn cần các thực thể cấu hình hay cấu hình. Giả sử bạn muốn các thực thể nội dung (được lưu trữ trong cơ sở dữ liệu, có thể thực hiện được / có thể sửa đổi / ..., chi tiết trong liên kết ở trên), bạn cần phải làm một cái gì đó như thế này, tài liệu được liên kết ở trên cuối cùng sẽ bao gồm từng bước, bao gồm cả hướng dẫn, ngay bây giờ , nó chỉ bao gồm các bước đầu tiên.
- Cung cấp một lớp thực thể và thêm các chú thích cần thiết để hiển thị nó dưới dạng một thực thể.
- Cung cấp (các) bảng cần thiết, bạn không phải thay đổi nhiều nếu bạn đã có lược đồ 7.x của mình, nhưng bạn muốn thêm một cột uuid và có thể là langcode nếu thực thể của bạn có thể có ngôn ngữ / có thể dịch được. Xem ví dụ nút được liên kết trong bước nếu bạn muốn làm cho một số trường cơ sở (thuộc tính) có thể dịch hoặc sửa đổi được, hiện tại bạn cần phải tự cung cấp các bảng cần thiết.
- Cung cấp các định nghĩa trường cơ sở trong phương thức baseFieldDefDefs () của bạn. . Lưu ý rằng cách thức hoạt động này sẽ thay đổi trong https://drupal.org/node/2047229 (từ mảng sang lớp).
- Thực hiện các phương thức Lưu / tải / Xóa cần thiết trước nếu bạn có logic tùy chỉnh cần xảy ra, ví dụ trước khi lưu một thực thể (như cập nhật dấu thời gian đã thay đổi).
- Triển khai bộ điều khiển truy cập nếu bạn có logic truy cập không tầm thường và ghi đè các phương thức checkAccess () và checkCreateAccess () hoặc chỉ định admin_ allow trong chú thích của bạn nếu bạn chỉ có một quyền cho phép truy cập đầy đủ.
- Mặc dù không được yêu cầu về mặt kỹ thuật để cung cấp giao diện cho lớp thực thể của bạn (ví dụ: NodeInterface cho Node) bao gồm các phương thức hữu ích (thường là get / set / isS Something ()) cho các trường cơ sở của bạn, để bạn có thể nhập gợi ý trên giao diện và được tự động hoàn thành cho các phương pháp đó.
Tùy thuộc vào những gì bạn cần, cũng sẽ có các bước tiếp theo, như xác định các biểu mẫu cần thiết, có thể là bộ điều khiển kết xuất, v.v., nhưng chúng có thể là những câu hỏi riêng biệt nếu bạn cần thêm thông tin.
Ghi chú:
- Các thực thể cấu hình về cơ bản là tương tự nhau, ngoại trừ bạn cần sử dụng bộ điều khiển lưu trữ cấu hình ( https://drupal.org/node/2119905 sẽ giúp việc này dễ dàng hơn), bạn không cần xác định lược đồ bảng (rõ ràng) nhưng bạn cần cung cấp một tệp lược đồ cấu hình, xem ví dụ: các tệp cho các từ vựng phân loại hoặc các loại nút.
- Các thực thể nội dung không có các trường cơ sở được xác định là thuộc tính công khai hoặc được bảo vệ, thay vào đó, chúng được tự động quản lý trong các thuộc tính giá trị và trường. Truy cập chúng thông qua get () / set () hoặc các phương thức ma thuật tương ứng. ($ nút-> tiêu đề bằng $ nút-> get ('title')).
- Trợ giúp về các tài liệu sẽ được chào đón. Tôi đã tạo một phác thảo cơ bản cho nội dung / cấu trúc mà tôi muốn có, vì vậy chỉ cần tạo một trang mới và bắt đầu, ví dụ: Tôi cũng quan tâm đến việc có các hướng dẫn đơn giản hóa, đối với các thực thể cấu hình, đã có một sẽ chuyển sang tài liệu thực thể khi sẵn sàng: https://drupal.org/node/1809494
- Core có số lượng triển khai thực thể nội dung khá lớn, nếu bạn muốn xem các ví dụ hoạt động: Node, Người dùng, Thuật ngữ, Nhận xét, CustomBlock, ... như bài viết được liên kết trong bước 1 giải thích, bạn luôn có thể tìm thấy các loại thực thể được cung cấp bởi một mô-đun trong bảng tên thực thể.
- @fago vừa trình bày về Entity API tại DrupalCamp Vienna vào cuối tuần này, bao gồm rất nhiều những gì tôi đã viết ở đây và hơn thế nữa.