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_Welcome 및 action_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'))),
);