codeigniter
후크 사용
수색…
후크 활성화
후크 기능은
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
필요한 경우 추가 매개 변수는 선택 사항입니다.