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


Modified text is an extract of the original Stack Overflow Documentation
Licensierat under CC BY-SA 3.0
Inte anslutet till Stack Overflow