Buscar..


Habilitar ganchos

La función de ganchos se puede habilitar / deshabilitar globalmente configurando el siguiente elemento en el archivo application/config/config.php :

$config['enable_hooks'] = TRUE;

Definiendo un gancho

Los ganchos se definen en el archivo application/config/hooks.php . Cada gancho se especifica como una matriz con este prototipo.

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

El índice de matriz se correlaciona con el nombre del punto de enlace particular que desea utilizar. En el ejemplo anterior, el punto de pre_controller es pre_controller . Una lista de puntos de gancho se encuentra a continuación. Los siguientes elementos deben definirse en su matriz de gancho asociativo:

clase El nombre de la clase que desea invocar. Si prefiere utilizar una función de procedimiento en lugar de una clase, deje este elemento en blanco.

función El nombre de la función (o método) al que desea llamar.

nombre de archivo El nombre del archivo que contiene su clase / función.

ruta-archivo El nombre del directorio que contiene su script.

params Cualquier parámetro que desee pasar a su script. Este artículo es opcional.

Puntos de gancho

pre_system

Llamado muy temprano durante la ejecución del sistema. En este punto, solo se han cargado la clase de referencia y los ganchos. Ningún enrutamiento u otros procesos han ocurrido.

pre_controller

Llamado inmediatamente antes de que se llame a cualquiera de sus controladores. Se han realizado todas las clases de base, enrutamiento y controles de seguridad.

post_controller_constructor

Llamado inmediatamente después de que su controlador sea instanciado, pero antes de que ocurra cualquier llamada de método.

post_controller

Llamado inmediatamente después de que su controlador esté completamente ejecutado.

display_override

_display() método _display() , utilizado para enviar la página finalizada al navegador web al final de la ejecución del sistema. Esto le permite utilizar su propia metodología de visualización. Tenga en cuenta que necesitará hacer referencia al superobjeto de CI con $this->CI =& get_instance() y luego los datos finalizados estarán disponibles llamando a $this->CI->output->get_output() .

cache_override

Le permite llamar a su propio método en lugar del método _display_cache() en la Biblioteca de resultados. Esto le permite utilizar su propio mecanismo de visualización de caché.

post_system

Se llama después de que la página procesada final se envía al navegador, al final de la ejecución del sistema después de que los datos finalizados se envían al navegador.

Ejemplo de Pre Controller Hook usando CodeIgniter

En la carpeta application/hooks , cree un archivo con el nombre Blocker.php y pegue el siguiente código.

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

En application/config/hooks.php , declare el siguiente application/config/hooks.php .

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

En application/config/config.php , establezca el siguiente valor como verdadero

Definiendo un gancho

Los ganchos se definen en la application/config/hooks.php . Cada gancho se especifica como una matriz con este prototipo:

$hook['pre_controller'] = array(
      'class'    => 'MyClass',
      'function' => 'Myfunction',
      'filename' => 'Myclass.php',
      'filepath' => 'hooks',
      'params'   => array('bread', 'wine', 'butter')
);
  • CLASS : la clase que desea invocar si se trata de un código de procedimiento, déjelo en blanco.
  • FUNCTION - El nombre de la función que desea llamar.
  • FILENAME DE ARCHIVO: el nombre de archivo que contiene su clase / función.
  • FILEPATH - Ubicación del archivo de FILEPATH .
  • PARAMS Parámetro PARAMS si es necesario es opcional.


Modified text is an extract of the original Stack Overflow Documentation
Licenciado bajo CC BY-SA 3.0
No afiliado a Stack Overflow