codeigniter
Utilisation de crochets
Recherche…
Activation des crochets
La fonctionnalité de hooks peut être globalement activée / désactivée en définissant l'élément suivant dans le fichier
application/config/config.php
:
$config['enable_hooks'] = TRUE;
Définir un crochet
Les crochets sont définis dans le fichier
application/config/hooks.php
. Chaque hook est spécifié comme un tableau avec ce prototype
$hook['pre_controller'] = array(
'class' => 'MyClass',
'function' => 'Myfunction',
'filename' => 'Myclass.php',
'filepath' => 'hooks',
'params' => array('beer', 'wine', 'snacks')
);
L'index de tableau correspond au nom du point d'accès particulier que vous souhaitez utiliser. Dans l'exemple ci-dessus, le point d' pre_controller
est pre_controller
. Une liste de points d'accroche se trouve ci-dessous. Les éléments suivants doivent être définis dans votre tableau de hook associatif:
class Le nom de la classe que vous souhaitez appeler. Si vous préférez utiliser une fonction procédurale au lieu d'une classe, laissez cet élément vide.
function Fonction (ou méthode) nom que vous souhaitez appeler.
filename Le nom du fichier contenant votre classe / fonction.
chemin-fichier Nom du répertoire contenant votre script.
paramètres Tous les paramètres que vous souhaitez transmettre à votre script. Cet article est facultatif.
Crochet Points
pre_system
Appelé très tôt lors de l'exécution du système. Seules les classes de benchmark et de hook ont été chargées à ce stade. Aucun routage ou autre processus n'a eu lieu.
pre_controller
Appelé immédiatement avant l’appel de vos contrôleurs. Toutes les classes de base, routage et contrôles de sécurité ont été effectués.
post_controller_constructor
Appelé immédiatement après l'instanciation de votre contrôleur, mais avant tout appel de méthode.
post_controller
Appelé immédiatement après l'exécution complète de votre contrôleur.
display_override
Remplace la méthode _display()
, utilisée pour envoyer la page finalisée au navigateur Web à la fin de l'exécution du système. Cela vous permet d'utiliser votre propre méthodologie d'affichage. Notez que vous devrez référencer le super-objet CI avec $this->CI =& get_instance()
et que les données finalisées seront disponibles en appelant $this->CI->output->get_output()
.
cache_override
Vous permet d'appeler votre propre méthode au lieu de la méthode _display_cache()
dans la bibliothèque de sortie. Cela vous permet d'utiliser votre propre mécanisme d'affichage du cache.
post_system
Appelé après l'envoi de la page finale au navigateur, à la fin de l'exécution du système après l'envoi des données finalisées au navigateur.
Exemple de pré contrôleur Hook utilisant CodeIgniter
Dans le application/hooks
, créez un fichier nommé Blocker.php
et collez le code ci-dessous.
<?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;
}
}
}
?>
Dans application/config/hooks.php
, déclarez le hook suivant.
$hook['pre_controller'] = array(
'class' => 'Blocker',
'function' => 'requestBlocker',
'filename' => 'Blocker.php',
'filepath' => 'hooks',
'params' => ""
);
Dans application/config/config.php
, définissez la valeur suivante comme true
Définir un crochet
Les crochets sont définis dans le fichier application/config/hooks.php
. Chaque crochet est spécifié en tant que tableau avec ce prototype:
$hook['pre_controller'] = array(
'class' => 'MyClass',
'function' => 'Myfunction',
'filename' => 'Myclass.php',
'filepath' => 'hooks',
'params' => array('bread', 'wine', 'butter')
);
-
CLASS
- La classe que vous souhaitez appeler s'il s'agit d'un code procédural le laisse vide. -
FUNCTION
- Le nom de la fonction que vous souhaitez appeler. -
FILENAME
- Le nom du fichier contenant votre classe / fonction. -
FILEPATH
- Emplacement du fichier hook. -
PARAMS
ParamètrePARAMS
si nécessaire il est facultatif