Sie sollten system/core/Codeigniter.php
öffnen und herausfinden, wo die Hooks aufgerufen werden und an welcher Stelle im Seitenlebenszyklus.
In der Zeile 299 wird ein Hook aufgerufen, dann wird $class
initialisiert, dann wird ein weiterer Hook aufgerufen.
Also, was passiert ist, wird Codeigniter die Liste von pre_controller
hooks holen und sie ausführen, bevor $class
initialisiert wird. Nachdem $class
initialisiert wurde und __constructor
tut es, wird die Liste von __pre_controller_constructor
hooks ausgeführt.
Was ist $CI = new $class()
?
Das $class
kommt vom Router, der bereits an diesem Punkt initialisiert wurde
Wenn also die URL auf mysite.com/category/products
und dann auf $class=='category'
zeigt, dann ist dies $CI = new Category(); // application/controllers/category.php
Wenn ein Hook vor der Funktion function &get_instance(){}
in Zeile 232 aufgerufen wird, können Sie nicht auf super object
zugreifen, da die Funktion noch nicht erstellt wurde. An diesem Punkt können Sie nur mit PHP arbeiten und nicht auf das Framework zugreifen.
Die vollständige Dokumentation zu Hooks finden Sie hier Ссылка
Tags und Links php codeigniter hook