Khi nào nên sử dụng tệp bao gồm (inc) trong phát triển mô-đun


10

Tôi nghĩ rằng tôi hiểu sự khác biệt về cấu trúc của tệp .inc (so với .module), nhưng ai đó có thể mô tả sự khác biệt về thiết kế không? Tôi thấy các mô-đun ví dụ drupal gọi một tệp .inc bằng hook_menu hoặc tôi thấy tệp gọi .inc cho các khiếm khuyết chức năng.

  • Trong trường hợp nào người ta đặt mã trong tệp .inc? Bất kỳ hướng dẫn thiết kế chung mà một số tuân thủ?
  • Có bất kỳ lợi thế nào ngoài sự rõ ràng về lý do tại sao một người sẽ sử dụng một tệp (hoặc nhiều) .inc không? hiệu suất? phiên bản?

cảm ơn!


1
Theo ý kiến ​​của tôi, bạn không thể nhận được lời giải thích tốt hơn câu trả lời được chấp nhận cho câu hỏi này :)
Clive

3
Cá nhân, nếu tôi có một mod hỗ trợ nhiều url hoặc bất cứ điều gì, tôi sử dụng một .incurl. chỉ cần tổ chức tôi đoán thay vì bỏ các chức năng ngẫu nhiên vào một .moduletệp lớn . nhưng như tài liệu tham khảo bài đăng của @ Clive, nó thực sự chỉ là ý kiến ​​cá nhân hoặc những gì bạn đã quen. không có đúng hay sai ở đây.
au_stan

1
thực vậy, tôi đã sử dụng modulename.pre process.inc, modulename.node.inc, modulename.menu.inc, v.v để chia các mô-đun lớn thành các khối hợp lý của các hàm liên quan, nhưng lý do thực sự duy nhất từ ​​bất kỳ quan điểm hiệu năng nào để sử dụng chúng ngoài phát triển tổ chức có thể là nếu mô-đun của bạn có một số chức năng khá lớn mà hiếm khi được gọi là bạn không muốn công cụ php của mình phân tích cú pháp mỗi khi nó được tải. sau đó bạn có thể mang chúng vào khi cần, giống như cách mọi thứ được thực hiện với menu gọi lại bao gồm.
Jimajamma

Để biết giá trị của nó, tôi nhóm các triển khai hook và các hàm trợ giúp của mình và phân loại các khối tài liệu của chúng bằng cách sử dụng một quy ước đặt tên thích hợp (trong VỐN). Vì vậy, khi tôi cuộn qua mã của mô-đun, tôi có thể thấy sự tách biệt giữa các nhóm chức năng khác nhau. Tôi đã xem xét các tiêu chuẩn bình luận để xem nếu một hệ thống đã tồn tại, nhưng tôi có thể thấy một hệ thống.
24ma13wg

Câu trả lời:


12

Theo quy tắc chung, tôi sẽ đặt vào tệp mô-đun mã được yêu cầu thường xuyên hơn (ví dụ: các hàm trợ giúp được sử dụng từ nhiều hơn một hàm) và trong các tệp .inc mã không được sử dụng thường xuyên hoặc được sử dụng cho cụ thể trang.

Kể từ Drupal 6, mã sẽ tự động tải các tệp chứa các cuộc gọi lại trang hoặc trình tạo biểu mẫu được sử dụng cho các mục menu. Vì lý do đó, các cuộc gọi lại trang cho các trang quản trị thường được đặt trên các tệp .admin.inc, trong khi gọi lại trang cho các trang bình thường được đặt trên các tệp .pages.inc.

Kể từ Drupal 7, các tệp chứa các lớp được tự động tải khi một lớp được khởi tạo. Drupal 7 cho phép các mô-đun xác định các tệp mà móc của chúng được xác định (thông qua hook_hook_info () ). Ví dụ, system_hook_info () định nghĩa các tập tin .tokens.inc như các file ở đâu hook_token_info(), hook_token_info_alter(), hook_tokens(), và hook_tokens_alter()triển khai có thể được tìm thấy; theo cách này, các tệp đó được tự động tải khi cần một trong các móc đó.
Điều này cho phép phân tách thêm mã trong các tệp được tải khi cần thiết và mã luôn được tải từ Drupal.

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.