Zoeken…


Haken inschakelen

De hooks-functie kan wereldwijd worden ingeschakeld / uitgeschakeld door het volgende item in het bestand application/config/config.php te stellen:

$config['enable_hooks'] = TRUE;

Een haak definiëren

Hooks worden gedefinieerd in het bestand application/config/hooks.php . Elke haak wordt gespecificeerd als een array met dit prototype

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

De array-index komt overeen met de naam van het specifieke haakpunt dat u wilt gebruiken. In het bovenstaande voorbeeld is het haakpunt pre_controller . Een lijst met haakpunten vindt u hieronder. De volgende items moeten worden gedefinieerd in uw associatieve hook-array:

class De naam van de klas die u wilt oproepen. Als u liever een procedurele functie gebruikt in plaats van een klasse, laat u dit item leeg.

functie De naam van de functie (of methode) die u wilt oproepen.

bestandsnaam De bestandsnaam die uw klasse / functie bevat.

file-path De naam van de map met uw script.

params Alle parameters die u aan uw script wilt doorgeven. Dit item is optioneel.

Hook-punten

pre_system

Zeer vroeg gebeld tijdens systeemuitvoering. Op dit moment zijn alleen de benchmark- en hooks-klasse geladen. Er zijn geen routing of andere processen gebeurd.

pre_controller

Belde onmiddellijk voordat een van uw controllers werd gebeld. Alle basisklassen, routing en beveiligingscontroles zijn uitgevoerd.

post_controller_constructor

Wordt onmiddellijk gebeld nadat uw controller is geïnstantieerd, maar voordat er methodeaanroepen plaatsvinden.

post_controller

Onmiddellijk gebeld nadat uw controller volledig is uitgevoerd.

display_override

Overschrijft de methode _display() , die wordt gebruikt om de voltooide pagina naar de webbrowser te sturen aan het einde van de systeemuitvoering. Hiermee kunt u uw eigen weergavemethode gebruiken. Merk op dat u naar het CI- $this->CI =& get_instance() moet verwijzen met $this->CI =& get_instance() en dat de definitieve gegevens beschikbaar zijn door $this->CI->output->get_output() .

cache_override

Hiermee kunt u uw eigen methode aanroepen in plaats van de methode _display_cache() in de _display_cache() . Hiermee kunt u uw eigen cacheweergavemechanisme gebruiken.

post_system

Wordt aangeroepen nadat de uiteindelijke gerenderde pagina naar de browser is verzonden, aan het einde van de systeemuitvoering nadat de definitieve gegevens naar de browser zijn verzonden.

Pre Controller Hook-voorbeeld met CodeIgniter

Maak in de map application/hooks een bestand met de naam Blocker.php en plak de onderstaande code.

<?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 de volgende hook.

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

Stel in application/config/config.php de volgende waarde in op true

Een haak definiëren

Hooks worden gedefinieerd in het bestand application/config/hooks.php . Elke haak wordt gespecificeerd als een array met dit prototype:

$hook['pre_controller'] = array(
      'class'    => 'MyClass',
      'function' => 'Myfunction',
      'filename' => 'Myclass.php',
      'filepath' => 'hooks',
      'params'   => array('bread', 'wine', 'butter')
);
  • CLASS - De klasse die u wilt gebruiken als het een procedurele code is, laat dit leeg.
  • FUNCTION - De functienaam die u wilt oproepen.
  • FILENAME - De bestandsnaam die uw klasse / functie bevat.
  • FILEPATH - Locatie van het FILEPATH .
  • PARAMS Aanvullende parameter indien nodig optioneel


Modified text is an extract of the original Stack Overflow Documentation
Licentie onder CC BY-SA 3.0
Niet aangesloten bij Stack Overflow