Ich bin mit der Verwendung module_exists
in einem Modul vertraut und verwende es in Situationen wie:
- Aktivieren Sie einige zusätzliche Funktionen in einem Modul, sofern auf der Site auch ein anderes Modul verfügbar ist. Das Modul Reservierungen: E-Mail enthält ein Beispiel (tatsächlich gibt es viele Beispiele dafür), wie in seiner Modulquelle gezeigt : Um Token (im eMail-Text) zu verwenden, muss das Token- Modul aktiviert sein.
- Implementieren Sie Modulabhängigkeiten in einem Thema, wie in der Antwort auf " Wie implementiere ich Modulabhängigkeiten in einem Thema und Paketmodule mit einem Thema? " Gezeigt .
Es gibt jedoch auch function_exists
, wie in der Antwort auf " Ist es möglich, eine Abhängigkeit der Javascript-Bibliothek bei Hook.info zu deklarieren? " Gezeigt .
Ich habe den Eindruck, dass die Verwendung function_exists
im Vergleich zu robuster (sicherer) ist module_exists
. Insbesondere, wenn Sie sicherstellen möchten, dass eine Funktion (die in einer neueren Version eines Moduls hinzugefügt wurde) verfügbar ist. Wenn Sie jedoch nur diese Funktion verwenden module_exists
, besteht die Gefahr, dass Fehler wie diese auftreten:
- wenn eine Seite ist immer noch mit einer alten Version eines Moduls, das nicht diese Funktion hat noch (so sollte man es nicht versuchen , verwenden noch ).
- Wenn eine Site bereits eine neue Version eines Moduls verwendet, das diese Funktion nicht mehr hat (Sie sollten also nicht mehr versuchen, sie zu verwenden ).
Meine Frage : Was sind die typischen Kriterien oder Vor- / Nachteile, um sich für die Verwendung von entweder module_exists
versus zu entscheiden function_exists
?