Je suis familier avec l'utilisation module_exists
dans un module et je l'utilise dans des situations comme:
- Activez certaines fonctionnalités supplémentaires dans un module, à condition qu'un autre module soit également disponible sur le site. Le module Reservations: Email contient un exemple (en fait, il existe de nombreux exemples de cela), comme le montre la source de son module : pour utiliser des jetons (dans le corps de l'e-mail), il faut que le module Token soit activé.
- Implémentez les dépendances de module dans un thème, comme indiqué dans la réponse à " Comment implémenter les dépendances de module dans un thème et conditionner les modules avec un thème? ".
Cependant, il y en a aussi function_exists
, comme le montre la réponse à " Est-il possible de déclarer une dépendance de bibliothèque Javascript sur Hook.info? ".
J'ai l'impression que l'utilisation function_exists
est une approche plus robuste (sûre) par rapport à module_exists
. Surtout si vous voulez être sûr qu'une fonction (ajoutée dans une nouvelle version d'un module) est disponible, alors qu'en utilisant simplement module_exists
, vous risquez de rencontrer des erreurs comme celles-ci:
- si un site est encore en utilisant une ancienne version d'un module, qui ne dispose pas de cette fonction encore (vous ne devriez pas essayer de l' utiliser encore ).
- si un site est déjà en utilisant une nouvelle version d'un module, qui n'a pas cette fonction plus (vous ne devriez pas essayer de l' utiliser plus ).
Ma question : quels sont les critères typiques, ou les avantages / inconvénients, pour décider d'utiliser l'un module_exists
ou l' autre contre function_exists
?