라이브러리

[PHP] Yaf_Application::getDispatcher - Yaf_Dispatcher 인스턴스 가져오기




Yaf_Application::getDispatcher


Yaf_Application::getDispatcher는 Yaf 프레임워크에서 사용할 수 있는 메서드입니다. 이 메서드는 현재 실행 중인 어플리케이션의 디스패처 객체를 반환합니다.

디스패처 객체


디스패처 객체는 요청을 처리하는 역할을 합니다. 디스패처 객체는 요청을 받고, 해당 요청에 맞는 컨트롤러를 찾아서 호출합니다.

예제


#hostingforum.kr
php

// Yaf_Application 객체를 생성합니다.

$app = new Yaf_Application('application.ini');



// 디스패처 객체를 가져옵니다.

$dispatcher = $app->getDispatcher();



// 디스패처 객체에 요청을 보냅니다.

$dispatcher->dispatch();



디스패처 객체의 메서드


디스패처 객체에는 여러 메서드가 있습니다. 여기에는 다음과 같은 메서드가 있습니다.

* `dispatch()`: 요청을 처리합니다.
* `getControllerName()`: 현재 처리 중인 컨트롤러 이름을 반환합니다.
* `getController()`: 현재 처리 중인 컨트롤러 객체를 반환합니다.
* `getActionName()`: 현재 처리 중인 액션 이름을 반환합니다.
* `getAction()`: 현재 처리 중인 액션 객체를 반환합니다.

예제 (디스패처 객체의 메서드)


#hostingforum.kr
php

// Yaf_Application 객체를 생성합니다.

$app = new Yaf_Application('application.ini');



// 디스패처 객체를 가져옵니다.

$dispatcher = $app->getDispatcher();



// 디스패처 객체에 요청을 보냅니다.

$dispatcher->dispatch();



// 현재 처리 중인 컨트롤러 이름을 출력합니다.

echo $dispatcher->getControllerName() . "
";



// 현재 처리 중인 컨트롤러 객체를 출력합니다.

echo get_class($dispatcher->getController()) . "
";



// 현재 처리 중인 액션 이름을 출력합니다.

echo $dispatcher->getActionName() . "
";



// 현재 처리 중인 액션 객체를 출력합니다.

echo get_class($dispatcher->getAction()) . "
";



디스패처 객체의 사용 사례


디스패처 객체는 요청을 처리하는 역할을 하기 때문에, 요청을 처리하는 로직을 작성할 때 사용할 수 있습니다. 예를 들어, 요청을 처리하는 로직을 작성할 때, 디스패처 객체를 사용하여 현재 처리 중인 컨트롤러와 액션을 확인할 수 있습니다.

예제 (디스패처 객체의 사용 사례)


#hostingforum.kr
php

// Yaf_Application 객체를 생성합니다.

$app = new Yaf_Application('application.ini');



// 디스패처 객체를 가져옵니다.

$dispatcher = $app->getDispatcher();



// 디스패처 객체에 요청을 보냅니다.

$dispatcher->dispatch();



// 현재 처리 중인 컨트롤러 이름과 액션 이름을 확인합니다.

$controllerName = $dispatcher->getControllerName();

$actionName = $dispatcher->getActionName();



// 현재 처리 중인 컨트롤러와 액션을 확인합니다.

$controller = $dispatcher->getController();

$action = $dispatcher->getAction();



// 요청을 처리하는 로직을 작성합니다.

if ($controllerName == 'index' && $actionName == 'index') {

    // index 컨트롤러의 index 액션을 처리합니다.

    echo "index 컨트롤러의 index 액션을 처리합니다.
";

} elseif ($controllerName == 'user' && $actionName == 'login') {

    // user 컨트롤러의 login 액션을 처리합니다.

    echo "user 컨트롤러의 login 액션을 처리합니다.
";

} else {

    // 다른 컨트롤러와 액션의 처리 로직을 작성합니다.

    echo "다른 컨트롤러와 액션의 처리 로직을 작성합니다.
";

}



결론


Yaf_Application::getDispatcher는 Yaf 프레임워크에서 사용할 수 있는 메서드입니다. 이 메서드는 현재 실행 중인 어플리케이션의 디스패처 객체를 반환합니다. 디스패처 객체는 요청을 처리하는 역할을 하기 때문에, 요청을 처리하는 로직을 작성할 때 사용할 수 있습니다.
  • profile_image
    나우호스팅 @pcs8404 

    호스팅포럼 화이팅!

    댓글목록

    등록된 댓글이 없습니다.

  • 전체 8,985건 / 27 페이지

검색

게시물 검색