Namespaces
GRIS verwendet Namespaces, damit Klassen automatisch inkludiert werden können. Das dynamische Nachladen von Code wird über spl_autoloader_register
realisiert und ist sowohl in den Seiten, als auch in den Services (auch REST) verfügbar).
Die Funktionalität wird von den zentralen Header-Dateien zur Verfügung gestellt (Siehe auch Verfügbare Variablen und Funktionen der index.php).
Vendorname
Der Vendorname lautet GRIS. Alle Angaben für Namensräume beginnen immer mit GRIS.
Beispiele für Namespaces:
namespace GRIS\classes; // für Klassen
namespace GRIS\responder; // für Ajax-Responder
namespace GRIS\service; // für AJAX-Services
Verwendung von Callback-Funktion
Auch bei Callback-Funktionen muss zwingend der Namespace der jeweiligen Datei beachtet werden. Im Beispiel wird eine PHP-Funktion some_function innerhalb der Klasse aufgerufen:
call_user_func_array("\\some_function", $args);
Ist some_function eine Klassenmethode, muss der komplette Name angegeben werden:
call_user_func_array(__NAMESPACE__."\\CLASSNAME::some_function", $args);
Außerhalb von Klassen (in „normalen“ PHP-Dateien) muss ebenfalls der korrekte Namespace angegeben werden. Voraussetzung ist, dass er zu Anfang des Codes angegeben wird, damit __NAMESPACE__
korrekt ist:
call_user_func_array(__NAMESPACE__."\\some_function", $args);
Tipp
Wichtig: beim Aufruf von Callback-Funktionen muss im String immer der Backslah escaped werden.
Beispiel
"\\some_function" oder „GRIS\\classes\\xyz“.