개발자 Q&A

개발하다 막혔다면? 여기서 질문하세요! 초보부터 고수까지, 함께 고민하고 해결하는 공간입니다. 누구나 자유롭게 질문하고 답변을 남겨보세요!

2025.07.16 16:55

Yaf_Dispatcher::__construct에 대한 이해를 구합니다.

목록
  • 스택오버플로우러버 3일 전 2025.07.16 16:55
  • 11
    1
제가 Yaf_Dispatcher::__construct를 공부하던 중,
이 함수의 역할에 대해 잘 이해하지 못하겠습니다.

Yaf_Dispatcher::__construct에서,
라우팅 정보를 어떻게 처리하는지,
와 같은 내용에 대해 질문을 드리겠습니다.

라우팅 정보를 어떻게 처리하는지,
그리고 dispatch() 함수를 호출할 때,
어떻게 라우팅 정보를 사용하는지,
해주시면 정말 감사하겠습니다.

    댓글목록

    profile_image
    나우호스팅  3일 전



    Yaf_Dispatcher::__construct는 Yaf_Dispatcher 클래스의 생성자 함수로, 라우팅 정보를 초기화하는 역할을 합니다.

    라우팅 정보는 Yaf 라우팅 시스템의 핵심 구성 요소로, URL 경로와 해당 경로에 매핑된 컨트롤러 및 메서드를 지정합니다.

    Yaf_Dispatcher::__construct에서 라우팅 정보를 처리하는 방법은 다음과 같습니다.

    1. 라우팅 정보를 읽어 들이는 함수인 Yaf_Router::getInstance()->parseConfig()를 호출하여 라우팅 정보를 초기화합니다.
    2. 초기화된 라우팅 정보를 Yaf_Dispatcher 클래스의 프로퍼티인 $this->_router에 저장합니다.

    dispatch() 함수는 Yaf_Dispatcher 클래스의 메서드로, 라우팅 정보를 기반으로 요청을 처리하는 역할을 합니다.

    dispatch() 함수를 호출할 때, 라우팅 정보를 사용하는 방법은 다음과 같습니다.

    1. dispatch() 함수는 라우팅 정보를 읽어 들여 요청 URL 경로를 분석합니다.
    2. 분석된 URL 경로를 기반으로 컨트롤러 및 메서드를 결정합니다.
    3. 결정된 컨트롤러 및 메서드를 호출하여 요청을 처리합니다.

    예를 들어, 라우팅 정보가 다음과 같이 구성되어 있다고 가정해 보겠습니다.

    #hostingforum.kr
    php
    
    // 라우팅 정보
    
    'router' => array(
    
        'routes' => array(
    
            'home' => array(
    
                'path' => '/',
    
                'controller' => 'index',
    
                'action' => 'index'
    
            ),
    
            'about' => array(
    
                'path' => '/about',
    
                'controller' => 'about',
    
                'action' => 'index'
    
            )
    
        )
    
    )
    
    


    이 경우, Yaf_Dispatcher::__construct는 라우팅 정보를 초기화하고, dispatch() 함수는 라우팅 정보를 기반으로 요청 URL 경로를 분석하여 컨트롤러 및 메서드를 결정합니다.

    예를 들어, 요청 URL이 '/'인 경우, dispatch() 함수는 'home' 라우팅 정보를 기반으로 'index' 컨트롤러 및 'index' 메서드를 호출합니다.

    #hostingforum.kr
    php
    
    // 요청 URL
    
    $url = '/';
    
    
    
    // 라우팅 정보를 기반으로 컨트롤러 및 메서드를 결정
    
    $controller = 'index';
    
    $action = 'index';
    
    
    
    // 컨트롤러 및 메서드를 호출
    
    $controller->index();
    
    

    2025-07-16 16:56

  • 개발자 Q&A 포인트 정책
      글쓰기
      50P
      댓글
      10P
  • 전체 37,370건 / 3 페이지

검색

게시물 검색