Ricerca…


Abilitare i ganci

La funzione hooks può essere abilitata / disabilitata globalmente impostando la seguente voce nel file application/config/config.php :

$config['enable_hooks'] = TRUE;

Definire un gancio

I hook sono definiti nel file application/config/hooks.php . Ogni hook è specificato come array con questo prototipo

$hook['pre_controller'] = array(
        'class'    => 'MyClass',
        'function' => 'Myfunction',
        'filename' => 'Myclass.php',
        'filepath' => 'hooks',
        'params'   => array('beer', 'wine', 'snacks')
);

L'indice dell'array è correlato al nome del punto di aggancio specifico che si desidera utilizzare. Nell'esempio sopra, il punto di aggancio è pre_controller . Di seguito è riportato un elenco di punti di aggancio. I seguenti elementi dovrebbero essere definiti nel tuo hook array associativo:

class Il nome della classe che desideri invocare. Se preferisci utilizzare una funzione procedurale invece di una classe, lascia vuoto questo elemento.

funzione Il nome della funzione (o metodo) che si desidera chiamare.

nomefile Il nome del file che contiene la tua classe / funzione.

percorso-file Il nome della directory che contiene il tuo script.

params Qualsiasi parametro tu voglia passare al tuo script. Questo articolo è opzionale

Punti di aggancio

pre_system

Chiamato molto presto durante l'esecuzione del sistema. A questo punto sono stati caricati solo il benchmark e la classe hooks. Nessun routing o altri processi sono accaduti.

pre_controller

Chiamato immediatamente prima che qualcuno dei tuoi controller venga chiamato. Sono state eseguite tutte le classi di base, il routing e i controlli di sicurezza.

post_controller_constructor

Chiamato immediatamente dopo l'istanziazione del controller, ma prima che si verifichino chiamate di metodo.

post_controller

Chiamato immediatamente dopo l'esecuzione completa del controller.

display_override

Sostituisce il metodo _display() , utilizzato per inviare la pagina finalizzata al browser Web alla fine dell'esecuzione del sistema. Questo ti permette di usare la tua metodologia di visualizzazione. Si noti che sarà necessario fare riferimento al $this->CI =& get_instance() con $this->CI =& get_instance() e quindi i dati finalizzati saranno disponibili chiamando $this->CI->output->get_output() .

cache_override

Consente di chiamare il proprio metodo invece del metodo _display_cache() nella Libreria di output. Questo ti permette di usare il tuo meccanismo di visualizzazione della cache.

post_system

Chiamato dopo che la pagina finale renderizzata viene inviata al browser, al termine dell'esecuzione del sistema dopo che i dati finalizzati sono stati inviati al browser.

Esempio di pre controller hook utilizzando CodeIgniter

Nella cartella application/hooks , crea un file con nome Blocker.php e incolla il codice seguente.

<?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;
        }
    }
}
?>

In application/config/hooks.php , dichiara il seguente hook.

$hook['pre_controller'] = array(
        'class'    => 'Blocker',
        'function' => 'requestBlocker',
        'filename' => 'Blocker.php',
        'filepath' => 'hooks',
        'params'   => ""
);

In application/config/config.php , imposta il seguente valore come true

Definire un gancio

Gli hook sono definiti nel file application/config/hooks.php . Ogni hook è specificato come array con questo prototipo:

$hook['pre_controller'] = array(
      'class'    => 'MyClass',
      'function' => 'Myfunction',
      'filename' => 'Myclass.php',
      'filepath' => 'hooks',
      'params'   => array('bread', 'wine', 'butter')
);
  • CLASS : la classe che desideri invocare se è un codice procedurale, lasciala vuota.
  • FUNCTION : il nome della funzione che si desidera chiamare.
  • FILENAME - Il nome del file che contiene la tua classe / funzione.
  • FILEPATH - Posizione del file di hook.
  • PARAMS - Parametro aggiuntivo se necessario è facoltativo


Modified text is an extract of the original Stack Overflow Documentation
Autorizzato sotto CC BY-SA 3.0
Non affiliato con Stack Overflow