Tôi quen với việc sử dụng module_exists
trong một mô-đun và sử dụng nó trong các tình huống như:
- Cho phép một số chức năng bổ sung trong một mô-đun, miễn là một số mô-đun khác cũng có sẵn trong trang web. Các đặt phòng: Email mô-đun chứa một ví dụ (trên thực tế có rất nhiều ví dụ về điều này), như thể hiện trong nó nguồn mô-đun : sử dụng thẻ (trong cơ thể eMail) yêu cầu rằng Mã mô-đun được kích hoạt.
- Triển khai các phụ thuộc mô-đun trong một chủ đề, như thể hiện trong câu trả lời cho " Cách triển khai các phụ thuộc mô-đun trong một chủ đề và các mô-đun gói với một chủ đề? ".
Tuy nhiên, cũng có function_exists
, chẳng hạn như được hiển thị trong câu trả lời cho " Có thể khai báo một phụ thuộc thư viện Javascript tại Hook.info không? ".
Tôi có ấn tượng rằng sử dụng function_exists
là một cách tiếp cận mạnh mẽ (an toàn) hơn so với module_exists
. Đặc biệt nếu bạn muốn chắc chắn rằng một số chức năng (được thêm vào trong phiên bản mới hơn của mô-đun) có sẵn, trong khi chỉ bằng cách sử dụng module_exists
, bạn có nguy cơ gặp phải các lỗi như:
- nếu một trang web vẫn sử dụng một cũ phiên bản của một module, mà không có mà chức năng chưa (vì vậy bạn không nên cố gắng sử dụng nó chưa ).
- nếu một trang web đã sử dụng một phiên bản mới của mô-đun, không có chức năng đó nữa (vì vậy bạn không nên cố gắng sử dụng nó nữa ).
Câu hỏi của tôi : các tiêu chí điển hình, hoặc ưu / nhược điểm, để quyết định sử dụng module_exists
so với function_exists
?