codeigniter
Gebruik van haken
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 hetFILEPATH
. -
PARAMS
Aanvullende parameter indien nodig optioneel