codeigniter
Användning av krokar
Sök…
Aktivera krokar
Funktioner för krokar kan aktiveras / inaktiveras globalt genom att ställa in följande objekt i
application/config/config.php
filen:
$config['enable_hooks'] = TRUE;
Definiera en krok
Krokar definieras i
application/config/hooks.php
filen. Varje krok specificeras som en matris med denna prototyp
$hook['pre_controller'] = array(
'class' => 'MyClass',
'function' => 'Myfunction',
'filename' => 'Myclass.php',
'filepath' => 'hooks',
'params' => array('beer', 'wine', 'snacks')
);
Arrayindexet korrelerar med namnet på den speciella krokpunkt som du vill använda. I exemplet ovan är pre_controller
. En lista över krokpunkter hittas nedan. Följande artiklar bör definieras i din associerande krokgrupp:
klass Namnet på klassen du vill åberopa. Om du föredrar att använda en procedurfunktion istället för en klass, lämna detta objekt tomt.
function Det (eller metod) namn du vill ringa.
filnamn Filnamnet som innehåller din klass / funktion.
file-path Namnet på katalogen som innehåller ditt skript.
params Alla parametrar du vill skicka till ditt skript. Den här artikeln är valfri.
Hook Points
pre_system
Ringde mycket tidigt under systemets körning. Endast benchmark- och krokklassen har laddats vid denna punkt. Ingen routing eller andra processer har hänt.
pre_controller
Ringde omedelbart innan någon av dina kontroller ringde. Alla basklasser, routing och säkerhetskontroller har gjorts.
post_controller_constructor
Ringer omedelbart efter att din controller är inställd, men innan någon metod sker samtal.
post_controller
Ringas omedelbart efter att din controller är fullständigt utförd.
display_override
_display()
metoden _display()
som används för att skicka den slutförda sidan till webbläsaren i slutet av systemets körning. Detta tillåter dig att använda din egen visningsmetodik. Observera att du måste referera till CI- $this->CI =& get_instance()
med $this->CI =& get_instance()
och sedan kommer de slutliga uppgifterna att finnas tillgängliga genom att ringa $this->CI->output->get_output()
.
cache_override
Gör det möjligt att ringa din egen metod istället för metoden _display_cache()
i Output Library. Detta tillåter dig att använda din egen cache-visningsmekanism.
post_system
Kallas efter att den slutgiltiga återgivna sidan skickas till webbläsaren, i slutet av systemutförandet efter att den slutgiltiga informationen har skickats till webbläsaren.
Exempel på Pre Controller Hook med CodeIgniter
Blocker.php
en fil med namnet Blocker.php
mappen application/hooks
och klistra in koden nedan.
<?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
följande krok i application/config/hooks.php
.
$hook['pre_controller'] = array(
'class' => 'Blocker',
'function' => 'requestBlocker',
'filename' => 'Blocker.php',
'filepath' => 'hooks',
'params' => ""
);
I application/config/config.php
anger du följande värde som sant
Definiera en krok
Krokar definieras i application/config/hooks.php
fil. Varje krok specificeras som en matris med denna prototyp:
$hook['pre_controller'] = array(
'class' => 'MyClass',
'function' => 'Myfunction',
'filename' => 'Myclass.php',
'filepath' => 'hooks',
'params' => array('bread', 'wine', 'butter')
);
-
CLASS
- Klassen som du vill åberopa om det är procedurkod lämnar den tom. -
FUNCTION
- Funktionsnamnet du vill ringa. -
FILENAME
-FILENAME
innehåller din klass / funktion. -
FILEPATH
- Plats för krokfilen. -
PARAMS
Tilläggsparameter om det behövs är valfri