Wie erstelle ich benutzerdefinierte Hooks in codeIgniter?

8

Ich mache eine PHP-Anwendung in codeIgniter und möchte Flexibilität mit Hooks. Es gibt jedoch eine begrenzte Anzahl von Hooks in codeIgniter, daher möchte ich eigene erstellen.

Wie kann ich das tun?

    
Anup 24.03.2015, 11:01
quelle

1 Antwort

1

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.

%Vor%

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 Ссылка

    
Philip 24.03.2015 15:29
quelle

Tags und Links