使用 CodeIgniter 的 Pre Controller Hook 示例

application/hooks 資料夾中,建立名為 Blocker.php 的檔案並貼上以下程式碼。

<?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 中,宣告以下鉤子。

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

application/config/config.php 中,將以下值設定為 true