codeigniter
Verwendung von Haken
Suche…
Hooks aktivieren
Die Hooks-Funktion kann global aktiviert / deaktiviert werden, indem das folgende Element in der Datei
application/config/config.php
wird:
$config['enable_hooks'] = TRUE;
Einen Haken definieren
Hooks sind in der Datei
application/config/hooks.php
. Bei diesem Prototyp wird jeder Hook als Array angegeben
$hook['pre_controller'] = array(
'class' => 'MyClass',
'function' => 'Myfunction',
'filename' => 'Myclass.php',
'filepath' => 'hooks',
'params' => array('beer', 'wine', 'snacks')
);
Der Array-Index entspricht dem Namen des bestimmten Hook-Punkts, den Sie verwenden möchten. Im obigen Beispiel ist der Hook-Punkt pre_controller
. Eine Liste mit Hakenpunkten finden Sie unten. Die folgenden Elemente sollten in Ihrem assoziativen Hook-Array definiert werden:
Klasse Der Name der Klasse, die Sie aufrufen möchten. Wenn Sie es vorziehen, anstelle einer Klasse eine prozedurale Funktion zu verwenden, lassen Sie dieses Element leer.
function Der Name der Funktion (oder Methode), die Sie aufrufen möchten.
Dateiname Der Dateiname, der Ihre Klasse / Funktion enthält.
Dateipfad Der Name des Verzeichnisses, in dem sich Ihr Skript befindet.
Irgendwelche Parameter params Sie Ihr Skript übergeben wollen. Dieser Artikel ist optional.
Hook-Punkte
pre_system
Wird sehr früh während der Systemausführung aufgerufen. Zu diesem Zeitpunkt wurden nur die Benchmark- und Hooks-Klasse geladen. Kein Routing oder andere Prozesse sind passiert.
pre_controller
Wird unmittelbar vor dem Aufruf eines Controllers aufgerufen. Alle Basisklassen, Routing und Sicherheitsprüfungen wurden durchgeführt.
post_controller_constructor
Wird sofort aufgerufen, nachdem der Controller instanziiert wurde, jedoch bevor Methodenaufrufe ausgeführt werden.
post_controller
Wird sofort aufgerufen, nachdem Ihr Controller vollständig ausgeführt wurde.
display_override
_display()
die _display()
-Methode, die verwendet wird, um die abgeschlossene Seite am Ende der Systemausführung an den Webbrowser zu senden. Dadurch können Sie Ihre eigene Anzeigemethode verwenden. Beachten Sie, dass Sie das CI- $this->CI =& get_instance()
mit $this->CI =& get_instance()
Die finalisierten Daten stehen dann durch Aufruf von $this->CI->output->get_output()
.
cache_override
Ermöglicht das Aufrufen einer eigenen Methode anstelle der Methode _display_cache()
in der _display_cache()
. Dadurch können Sie Ihren eigenen Cache-Anzeigemechanismus verwenden.
post_system
Wird aufgerufen, nachdem die endgültig gerenderte Seite an den Browser gesendet wurde, am Ende der Systemausführung, nachdem die endgültigen Daten an den Browser gesendet wurden.
Pre Controller Hook-Beispiel mit CodeIgniter
Erstellen Sie im Ordner application/hooks
eine Datei mit dem Namen Blocker.php
und fügen Sie den folgenden Code ein.
<?php
class Blocker {
function Blocker(){
}
/**
* This function used to block the every request except allowed ip address
*/
function requestBlocker(){
if($_SERVER["REMOTE_ADDR"] != "49.248.51.230"){
echo "not allowed";
die;
}
}
}
?>
application/config/hooks.php
in application/config/hooks.php
den folgenden Hook.
$hook['pre_controller'] = array(
'class' => 'Blocker',
'function' => 'requestBlocker',
'filename' => 'Blocker.php',
'filepath' => 'hooks',
'params' => ""
);
application/config/config.php
in application/config/config.php
den folgenden Wert als "true" fest
Einen Haken definieren
Hooks sind in der Datei application/config/hooks.php
definiert. Jeder Hook wird mit diesem Prototyp als Array angegeben:
$hook['pre_controller'] = array(
'class' => 'MyClass',
'function' => 'Myfunction',
'filename' => 'Myclass.php',
'filepath' => 'hooks',
'params' => array('bread', 'wine', 'butter')
);
-
CLASS
- Die Klasse, die Sie aufrufen möchten, wenn es sich um prozeduralen Code handelt. -
FUNCTION
- Der Funktionsname, den Sie anrufen möchten. -
FILENAME
- Der Dateiname, der Ihre Klasse / Funktion enthält. -
FILEPATH
-FILEPATH
der Hook-Datei. -
PARAMS
-Zusatzparameter bei Bedarf optional