FuelPHP-라우팅

라우팅 맵은 특정 컨트롤러의 메서드에 대한 URI를 요청합니다. 이 장에서 우리는routing FuelPHP에서 자세히 설명합니다.

구성

경로 구성 파일은 다음 위치에 있습니다. fuel/app/config/routes.php. 기본값routes.php 파일은 다음과 같이 정의됩니다-

<?php 
   return array ( 
      '_root_'  => 'welcome/index',   // The default route 
      '_404_'   => 'welcome/404',     // The main 404 route 
      'hello(/:name)?' => array('welcome/hello', 'name' => 'hello'), 
   );

여기, _root_응용 프로그램이 루트 경로 (예 : http : // localhost : 8080 /) 와 함께 요청 될 때 일치되는 미리 정의 된 기본 경로 입니다. _root_ 의 값은 컨트롤러와 일치 할 때 해결해야 할 작업입니다.welcome/index로 확인 Controller_Welcome의 컨트롤러 action_index 동작 방법. 마찬가지로 다음과 같은 예약 된 경로가 있습니다.

  • root − URI가 지정되지 않은 경우 기본 경로.

  • 403 − HttpNoAccessException이 발견되면 발생합니다.

  • 404 − 페이지를 찾을 수 없을 때 반환됩니다.

  • 500 − HttpServerErrorException이 발견되면 발생합니다.

간단한 라우팅

경로는 요청 URI와 비교됩니다. 일치하는 항목이 있으면 요청이 URI로 라우팅됩니다. 간단한 라우팅은 다음과 같이 설명됩니다.

return array ( 
   'about'  => 'site/about', 
   'login' => 'employee/login', 
);

여기, about http : // localhost : 8080 / about과 일치하고 컨트롤러, Controller_Site 및 작업 방법 인 action_about을 확인합니다.

login http : // localhost : 8080 / login과 일치하고 컨트롤러, Controller_Login 및 작업 방법, action_login을 확인합니다.

고급 라우팅

경로에 모든 정규식을 포함 할 수 있습니다. Fuel은 다음과 같은 고급 라우팅 기능을 지원합니다.

  • :any − 이는 URI의 해당 지점부터 일치하는 항목이며 "nothing"과 일치하지 않습니다.

  • :everything − : any와 비슷하지만 "nothing"과도 일치합니다.

  • :segment − 이것은 URI의 한 세그먼트와 만 일치하지만 해당 세그먼트는 무엇이든 될 수 있습니다.

  • :num − 이것은 모든 숫자와 일치합니다.

  • :alpha − UTF-8을 포함한 모든 알파벳 문자와 일치합니다.

  • :alnum − UTF-8을 포함한 모든 영숫자 문자와 일치합니다.

예를 들어 다음 경로는 URI http : // localhost : 8080 / hello / FuelPHP일치 하고 컨트롤러, Controller_Welcomeaction_hello 작업을 확인합니다.

'hello(/:name)?' => array('welcome/hello', 'name' => 'hello'),

Controller_Welcome 에서 대응하는 액션 방법 은 다음과 같습니다.

public function action_hello() { 
   $this->name = Request::active()->param('name', 'World'); 
   $message = "Hello, " . $this->name;  
   echo $message; 
}

여기서는 Request 클래스를 사용하여 URL에서 이름 매개 변수를 가져 왔습니다. 이름이 없으면 World 를 기본값으로 사용합니다. 요청응답 장 에서 요청 클래스를 배웁니다 .

결과

HTTP 메서드 작업

FuelPHP는 HTTP 메소드 접두사 작업과 일치하는 경로를 지원합니다. 다음은 기본 구문입니다.

class Controller_Employee extends Controller { 
   public function get_index() { 
      // called when the HTTP method is GET. 
   }  
   public function post_index(){ 
      // called when the HTTP method is POST. 
   } 
}

다음과 같이 구성 파일의 HTTP 동사를 기반으로 URL을 컨트롤러 및 작업으로 라우팅 할 수 있습니다.

return array ( 
   // Routes GET /employee to /employee/all and POST /employee to /employee/create 
   ‘employee’ => array(array('GET', new Route(‘employee/all')), array('POST', 
      new Route(‘employee/create'))), 
);