Я знаком с использованием module_exists
в модуле, и использовать его в таких ситуациях, как:
- Включите некоторые дополнительные функции в модуле, при условии, что на сайте также доступен другой модуль. Модуль Reservations: Email содержит пример (на самом деле примеров тому достаточно), как показано в источнике его модуля : для использования токенов (в теле письма) необходимо, чтобы модуль Token был включен.
- Реализовать зависимости модулей в теме, как показано в ответе на вопрос « Как реализовать зависимости модулей в теме и модули пакетов с темой? ».
Тем не менее, есть также function_exists
, как показано в ответе на вопрос « Можно ли объявить зависимость библиотеки Javascript на Hook.info? ».
У меня сложилось впечатление, что использование function_exists
является более надежным (безопасным) подходом по сравнению с module_exists
. Особенно, если вы хотите быть уверены, что какая-то функция (добавленная в более новой версии модуля) доступна, тогда как, просто используя ее module_exists
, вы рискуете столкнуться с такими ошибками:
- если сайт еще использует старую версию модуля, который не имеет эту функцию еще (так что вы не должны пытаться использовать его еще ).
- если сайт уже использует новую версию модуля, который не имеет этой функции больше (так что вы не должны пытаться использовать его больше ).
Мой вопрос : каковы типичные критерии, или плюсы / минусы, чтобы выбрать для использования либо module_exists
против function_exists
?