Các thực thể trong Drupal 7


14

Các thực thể Drupal trong Drupal 7 là gì? Tôi hiểu rằng Drupal Commerce đã xây dựng Sản phẩm như một Thực thể. Tôi biết bây giờ có API thực thể cốt lõi và bổ sung đóng góp cho API thực thể.

Tôi có một vài dự án trong năm nay, nơi tôi muốn sử dụng Drupal 7, NoQuery và có thể là API thực thể nếu nó yêu cầu - nhưng tôi gặp khó khăn khi thấy nó cần ở đâu.

Giả sử bạn đang xây dựng một trang web liệt kê công việc - một công việc không nhất thiết phải giống như nội dung nút, bạn có thể / biến nó thành một Thực thể không?

Ngoài ra, bạn vẫn có thể có khả năng nói chuyện với các mô-đun với Thực thể và làm thế nào được thực hiện? Giống như, một thực thể Đăng công việc được đặt bí danh với Pathauto và được hiển thị trong Chế độ xem cũng như xuất hiện trong Sơ đồ trang web XML.

Câu trả lời:


9

Một thực thể là cấu trúc dữ liệu được xác định bởi hook_entity_info () và có thể thực hiện được, có nghĩa là bạn có thể thêm các trường vào chúng.

Trong Drupal 7 Core, Nút, Người dùng, Nhận xét, Từ vựng và Điều khoản là các thực thể.

Trong Contrib, có nhiều hơn nữa, ví dụ như tin nhắn và thương mại riêng tư giống như một tá trong số chúng;)

Tuy nhiên, tôi nghĩ rằng các bài đăng công việc hoàn toàn tốt như các nút :) Các thực thể không tự động có tích hợp Pathauto (Tokens), Lượt xem, v.v.


9

Các thực thể là một cấp độ meta trên các nút, người dùng, v.v.

Về cơ bản nếu bạn nhìn vào D6, có rất nhiều mô-đun trùng lặp và chức năng trên các loại điều này. Ví dụ, có các mô-đun để đính kèm các trường cck cho người dùng và các thuật ngữ phân loại.

Trong D7, một quyết định đã được đưa ra để xử lý những điều này theo cùng một cách, về mặt kiến ​​trúc, vì vậy nếu bạn có một mô-đun làm điều gì đó cho các thực thể, thì nó sẽ hoạt động cho các nút, thuật ngữ và người dùng.

Trong các phiên bản trước của Drupal, một mô-đun như Commerce sẽ có hai tùy chọn, để xây dựng loại nút tùy chỉnh hoặc hoàn toàn nằm ngoài hệ thống nội bộ của Drupal và xác định loại điều riêng. Với các thực thể, có thể mô tả Sản phẩm là một loại sự vật, khác biệt với các loại hiện có, nhưng vẫn tận dụng các tính năng như các trường trong trang điểm của chúng.

Giả sử bạn đang xây dựng một trang web liệt kê công việc - một công việc không nhất thiết phải giống như nội dung nút, bạn có thể / biến nó thành một Thực thể không?

Bạn có thể. Tôi nghĩ bạn nên cẩn thận làm cho thực thể của mọi thứ quá nhanh. Thông thường các loại nút tùy chỉnh vẫn sẽ làm những gì bạn muốn. Là một công việc liệt kê một loại điều khác với một nút, hoặc nó là một nút có một số thuộc tính đặc biệt?


3

Tôi đã bắt đầu sử dụng các thực thể trong một vài dự án của mình cho những thứ không thực sự "nội dung". Chúng tôi sử dụng chúng cho những thứ mà chúng tôi không thực sự quan tâm khi nó được xuất bản hoặc tác giả là ai.

Lợi ích thực sự của việc xác định thực thể là nếu bạn đang phát triển các mô-đun tùy chỉnh của riêng mình. Bạn nhận được một cấu trúc bảng đẹp và một loạt các tính tốt của Drupal (Khả năng thực địa, tích hợp Lượt xem, ...) miễn phí. Không còn tạo cấu trúc bảng tùy chỉnh của riêng bạn hoặc trang bị thêm một loại nút theo nhu cầu của bạn. Ngoài ra, tôi thích cách chúng nhẹ đến mức các thực thể khôn ngoan về hiệu suất nên tốt hơn. Nếu bạn đã thực hiện bất kỳ truy vấn nào trong D6 với các nút, bạn sẽ hiểu ý của tôi.


1

Các nút, người dùng, phân loại là ví dụ của các thực thể Drupal. Tính năng chính của một thực thể là nó có thể được gán cho các thực thể khác: người dùng được liên kết với một nút và phân loại có thể được gán cho các nút và người dùng.

Nếu những gì bạn mô tả là công việc có thể được gán cho người dùng hoặc nút, thì tôi sẽ biến nó thành một thực thể. Nếu những gì bạn có thể "công việc" chỉ là một loại nội dung, thì tôi sẽ không biến nó thành một thực thể.


1

Nếu bạn muốn nói rằng trong một vài từ thực sự, bạn có thể nói rằng en thực thể chỉ là một phần dữ liệu mà drupal nhận thức được và nó có thể được lưu trữ ở bất cứ đâu.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.