Eu estou familiarizado com o uso module_exists
em um módulo e em situações como:
- Habilite alguma funcionalidade extra em um módulo, desde que outro módulo também esteja disponível no site. O módulo Reservations: Email contém um exemplo (na verdade, existem muitos exemplos disso), conforme mostrado na fonte do módulo : usar tokens (no corpo do e-mail) requer que o módulo Token esteja ativado.
- Implemente dependências de módulo em um tema, conforme mostrado na resposta a " Como implementar dependências de módulo em um tema e empacote módulos com um tema? ".
No entanto, também existem function_exists
, como mostrado na resposta a " É possível declarar uma dependência da biblioteca Javascript no Hook.info? ".
Tenho a impressão de que usar function_exists
é uma abordagem mais robusta (segura) em comparação com module_exists
. Especialmente se você quiser ter certeza de que alguma função (adicionada em uma versão mais recente de um módulo) está disponível, enquanto, ao usá- module_exists
lo, você corre o risco de encontrar erros como os seguintes:
- se um site está ainda usando uma antiga versão de um módulo, que não tem essa função ainda (para que você não deve tentar usá-lo ainda ).
- se um site está já usando uma nova versão de um módulo, que não tem essa função mais (para que você não deve tentar usá-lo mais ).
Minha pergunta : quais são os critérios típicos, ou prós / contras, para decidir usar um module_exists
versus function_exists
?