CI 묻고 답하기

제목 묵혀뒀던 CI를 다시 공부해보고 있는데요..
글쓴이 작업공간 작성시각 2015/05/11 16:03:22
댓글 : 2 추천 : 0 스크랩 : 0 조회수 : 12888   RSS
class Member extends CI_Controller {
    public function index()
    {
        $this->login();
    }
    
    public function _remap($method, $params = array())
    {
        $this->load->view('head', $params);

        if( method_exists($this, $method) )
        {
            return call_user_func_array(array($this, $method), $params);
        }

        $this->load->view('foot');
    }

    public function login()
    {
        $this->load->view('member/login');
    }

    public function join()
    {
        $this->load->view('member/join');
    }

}

위와같은 코드를 작성해서 login을 들어가던 join을 들어가던 head와 foot가 다시 불러와지는걸 확인했습니다.

여기서 제가 이해한 내용은
_remap 메소드는 어느 페이지든 불러와지며
$method 변수를 받아서..

$method 변수는
home.com/index.php/member/login
CI URL규칙에 따라서 index.php다음에 있는 member를 가져오는게 method 변수인것이고,
그 ci다음에 있는 login은 $params에 순차배열로 들어가는것도 확인하였구요.

그런데 저는 저 상황에서
home.com/index.php/member/login 을 하게 되면
$params 변수를 활용해서 타이틀을 주려면...

.... 글쓰다보니 제가 무슨소리하는지도 이해가 잘안가네요 ㅋㅋ;;

ㅠㅠ..

call_user_func_array가
어떤 역할을 해주는지 잘 이해가 되지 않네요... 이건 정확히 모르겠습니다..
ㅠㅠ....

멘붕이라 생각 정리겸 글써보는데 으아.. 정리가 안되네요 ㅋㅋ;
 다음글 왜 CI 할때 ? > 이걸 안닫는지 궁금합니다! (3)
 이전글 CI로 개발을 하게 되면요. (5)

댓글

작업공간 / 2015/05/11 16:09:18 / 추천 0
call_user_func_array는 정리해보자니..
아래 예 대로라면 1번째 argument는 "함수명(메소드명)" 인거고,
2번째 argument는 배열로 집어넣되 1번째 함수의 필요한 argument를 넣어준건가요... 그렇게된다면.. 음;;;ㅇ ㅡㅇㅇ럼내ㅑ덞ㄴ덜
멘붕멘붕 ㅋㅋ

function foobar($arg$arg2) {
    echo 
__FUNCTION__" got $arg and $arg2\n";
}

call_user_func_array("foobar", array("one""two"));
 
한대승(불의회상) / 2015/05/11 16:42:05 / 추천 0
넵... 맞습니다.
foobar('one', 'too');
한 것과 똑같습니다.