질문 Q #23711
CI4에서 hooks 사용 방법을 알려주세요
나무나무자라나라 2021-10-06 17:38:57

CI4에서 매번 페이지 이동시 세션 체크 아웃이 되어 있는지 확인하는 기능을 추가하고 싶습니다.

CI3 때는 아래의 코드를 사용하여 hooks를 만들었는데, CI4에서는 events로 한다라는 정보만 알고 어떻게 작업해야할지 감이 안옵니다.

 

/application/hooks/logs.php

function checkPermission() {

    $CI =& get_instance();

    if (isset($CI->allow) && (is_array($CI->allow) === false OR in_array($CI->router->method, $CI->allow) === false)) {

        if (1) { 

            redirect('/account/signin?next=' . urlencode($CI->uri->ruri_string()));

       }

    }

} 

답변 1
#1 한대승(불의회상) 2021-10-06 22:00:55

이벤트 정의는 app/Config/Events.php 파일에 하시면 됩니다.

페이지 진입시 세션 유무를 확인하는거라면 pre_system 이벤트를 사용하시면 됩니다.

Events::on('pre_system', function (...$params)
{
        . . .
});

메뉴얼 링크 : http://ci4doc.cikorea.net/extending/events.html