Was sind Callables?
Callables ist die Beschreibung für Möglichkeiten, um Funktionen und Methoden aufzurufen.
Das, zb:
array( ‚Meine_Klasse‘, ’name_einer_funktion‘ )
Ein „Callable“ umschreibt alles, womit etwas aufgerufen werden kann.
Das Etwas ist eine Funktion.
Callable klingt vielleicht sperrig, ist natürlich englisch und bedeutet:
Aufrufbar, abrufbar
https://www.dict.cc/?s=callable
Beispiele
In PHP, und damit WordPress, gibt es unterschiedliche Callables.
Normale Funktion in Variablennamen
Die einfachste Möglichkeit um eine Funktion aufzurufen ist es, den Funktionsname in eine Variable zu stecken und die aufzurufen:
Anonyme Funktion (Closure)
Erstelltes Objekt und Methodennamen im Array
Man kann eine Methode eines Objektes aufrufen, indem man das Objekt erstellt und das neu erstellte Objekt mit dem gewünschten Methoden-Namen in einem Array notiert.
Hier wird es für WordPress-Interessierte am Spannendsten, denn diese Konstrukte kommen dauernd im Core, in Plugins und oft auch in Themes vor:
Das was in Zeile 24 passiert sehen wir in der WordPress-Welt dauernd, die Zeile 25 sehen wir so gut wie nie und ist nur ein Beispiel-Aufruf der Methode „meine_klassen_methode“ in der Klasse „Meine_Klasse“
Aufruf von statischen Methoden einer Klasse mit Übergabe von Klassen-Namen und Methoden-Namen
Wenn eine Klasse eine statische Methode (=Funktion) enthält, muss man das Objekt/die Klasse nicht zuvor erstellt/initialisiert haben.
Dann reicht es, wenn man den Namen der Klasse und der Methode in ein Array steckt:
Hier sieht man, dass es zwei Möglichkeiten gibt:
Einmal stecke ich die Bezeichnungen in ein Array (Zeile 34) oder verbinde Klasse und Funktoin mit zwei Doppelpunkten in einem String (Zeile 40).
Callables im WordPress-Universum
WordPress verwendet eine sehr ähnliche Notierung im Array für den Aufruf von Hooks, also Actions und Filtern.
Deswegen ist es so wichtig zu verstehen, wie grundsätzlich eine Methode/Funktion aufgerufen wird.
Weil WordPress eben sehr oft solche Codestellen aufweist, die ähnlich einem direkten Methoden-Aufruf ausschauen. Hier als Beispiel Anhand der offiziellen WordPress-Doku:
Das schaut ähnlich aus wie die Dinge, die ganz am Anfang dieses Blogs beschrieben wurden, ist aber etwas anderes!
In einer guten IDE bekommt man dazu mehr Hilfestellung:
Hier wird angezeigt, dass es sich beim ersten Parameter um einen hook_name handelt.
Zum Vergleich:
Im eigenen Code wird man oft selbst so etwas schreiben:
Das ist ein Methoden-Aufruf einer statischen Methode.