수색…


후크 활성화

후크 기능은 application/config/config.php 파일에서 다음 항목을 설정하여 전역 적으로 활성화 / 비활성화 할 수 있습니다.

$config['enable_hooks'] = TRUE;

훅 정의하기

후크는 application/config/hooks.php 파일에 정의 application/config/hooks.php 있습니다. 각 후크는이 프로토 타입이있는 배열로 지정됩니다.

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

배열 색인은 사용할 특정 후크 포인트의 이름과 관련이 있습니다. 위의 예에서, 후크 포인트는 pre_controller 입니다. 후크 포인트 목록은 아래에 있습니다. 다음 항목은 연관 후크 배열에 정의해야합니다.

class 호출하고자하는 클래스 의 이름. 클래스 대신 프로 시저 함수를 사용하려면이 항목을 비워 두십시오.

function 호출 할 함수 (또는 메소드) 이름입니다.

filename 클래스 / 함수가 들어있는 파일 이름입니다.

file-path 스크립트를 포함하는 디렉토리의 이름.

params 스크립트에 전달할 매개 변수입니다. 이 항목은 선택 사항입니다.

후크 포인트

pre_system

시스템 실행 중에 매우 일찍 호출됩니다. 이 시점에서 벤치 마크 및 후크 클래스 만로드되었습니다. 라우팅이나 다른 프로세스가 발생하지 않았습니다.

pre_controller

컨트롤러가 호출되기 직전에 호출됩니다. 모든 기본 클래스, 라우팅 및 보안 검사가 완료되었습니다.

post_controller_constructor

컨트롤러가 인스턴스화 된 직후에 호출되지만 메서드 호출 이전에 호출됩니다.

post_controller

컨트롤러가 완전히 실행 된 직후에 호출됩니다.

display_override

시스템 실행 종료시 최종 페이지를 웹 브라우저로 보내는 데 사용되는 _display() 메서드를 재정의합니다. 이렇게하면 자신의 디스플레이 방법론을 사용할 수 있습니다. $this->CI =& get_instance() 를 사용하여 CI 수퍼 객체를 참조해야하므로 $this->CI->output->get_output() 을 호출하여 완성 된 데이터를 사용할 수 있습니다.

cache_override

출력 라이브러리에서 _display_cache() 메서드 대신 사용자 고유의 메서드를 호출 할 수 있습니다. 이렇게하면 자신의 캐시 표시 메커니즘을 사용할 수 있습니다.

post_system

최종 렌더링 된 페이지가 브라우저로 전송 된 후 호출되며 최종화 된 데이터가 브라우저로 전송 된 후 시스템 실행이 끝날 때 호출됩니다.

CodeIgniter를 사용하여 사전 컨트롤러 훅 예제

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로 설정하십시오

훅 정의하기

후크는 application/config/hooks.php 파일에 정의 application/config/hooks.php 있습니다. 각 후크는이 프로토 타입이있는 배열로 지정됩니다.

$hook['pre_controller'] = array(
      'class'    => 'MyClass',
      'function' => 'Myfunction',
      'filename' => 'Myclass.php',
      'filepath' => 'hooks',
      'params'   => array('bread', 'wine', 'butter')
);
  • CLASS - 절차 코드 인 경우 호출하려는 클래스는 비워 둡니다.
  • FUNCTION - 호출하고자하는 함수의 이름.
  • FILENAME - 클래스 / 함수가 들어있는 파일 이름입니다.
  • FILEPATH - 후크 파일의 위치.
  • PARAMS 필요한 경우 추가 매개 변수는 선택 사항입니다.


Modified text is an extract of the original Stack Overflow Documentation
아래 라이선스 CC BY-SA 3.0
와 제휴하지 않음 Stack Overflow