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


Modified text is an extract of the original Stack Overflow Documentation
Lizenziert unter CC BY-SA 3.0
Nicht angeschlossen an Stack Overflow