FuelPHP-컨트롤러
ControllersFuelPHP 애플리케이션에 들어오는 각 요청을 처리 할 책임이 있습니다. FuelPHP에 따르면 컨트롤러는 다음 위치에 있습니다.fuel/app/classes/controller/. 먼저 Employee Controller를 생성하겠습니다.
employee.php
<?php
class Controller_Employee extends Controller {
public function action_home() {
echo "FuelPHP-Employee application!";
}
public function action_index() {
echo "This is the index method of employee controller";
}
}
컨트롤러 방법
컨트롤러는 다음 중 하나를 사용하여 웹 요청을 처리합니다. action_ 방법. 응용 프로그램의 요구 사항에 따라 많은 action_ 메서드를 만들 수 있습니다 . 기본 action_ 메소드는 action_index 입니다. action_index 메소드는 다음 URL 중 하나에서 호출 할 수 있습니다.
http://localhost:8080/employee/index
http://localhost:8080/employee/
결과
우리가 새로운 action방법 action_show 우리employee 신청.
<?php
class Controller_Employee extends Controller {
public function action_home() {
echo "FuelPHP-Employee application!";
}
public function action_index() {
echo "This is the index method of employee controller";
}
public function action_show() {
echo "This is the show method of employee controller";
}
}
action_show 메서드는 다음 URL을 사용하여 호출 할 수 있습니다.
http://localhost:8080/home/show
결과
before () 메서드
방법을 만들 수 있습니다. before컨트롤러에서. 이 메소드는 각각의 모든 action_ 메소드 호출 전에 실행 됩니다. 해당 메소드가 존재하지 않는 것으로 밝혀지면 호출되지 않습니다. 이 방법은 로그인 확인, 기본 데이터 가져 오기 등과 같은 일반적인 작업을 작성하는 데 도움이됩니다.
before 메서드를 만들고 간단한 텍스트 메시지를 인쇄 해 보겠습니다 .
public function before() {
echo "This message comes from <em>before()</em> method</br>";
}
작업 전 인덱스 페이지
작업 전 페이지 표시
after () 메서드
after() 방법은 before()하지만 action_ 메소드가 호출 된 후에 실행 됩니다. after () 메서드는 응답 을 입력으로 받아 응답 객체를 반환 합니다.
public function after($response) {
if ( ! $response instanceof Response) {
$response = \Response::forge($response, $this->response_status);
}
return $response;
}
입력이 NULL이거나 응답 객체가 아닌 경우 Response의 forge 메서드를 사용하여 새 Response 객체를 만들고 반환합니다. 응답 클래스는 다음 장에서 자세히 배웁니다.
컨트롤러 확장
하나의 컨트롤러를 다른 컨트롤러에서 확장 할 수 있습니다. 다음은 기본 구문입니다.
class Controller_Employee extends Controller_Welcome {
// controller methods
}
이것은 공유 방법에 도움이 될 것입니다.
컨트롤러 생성
Fuel에는 Oil 명령을 사용하여 컨트롤러를 생성하는 옵션이 있습니다. 다음은 구문입니다.
통사론
oil g controller <controller-name>
예
oil g controller sample
위의 명령을 실행하면 다음과 같은 응답이 표시됩니다.
결과
Creating view: /path/to/project/fuel/app/views/template.php
Creating view: /path/to/project/fuel/app/views/sample/index.php
Creating controller: /path/to/project/fuel/app/classes/controller/sample.php
컨트롤러 유형
FuelPHP는 다양한 목적을 위해 다양한 유형의 컨트롤러를 제공합니다. 그들은 다음과 같습니다-
- 기본 컨트롤러
- 템플릿 컨트롤러
- 나머지 컨트롤러
- 하이브리드 컨트롤러
기본 컨트롤러
Controller는 FuelPHP에서 사용할 수있는 모든 다양한 유형의 컨트롤러를위한 기본 컨트롤러입니다. 웹 요청을 처리하는 데 필요한 모든 기본 기능을 제공합니다. 요청, 응답, 세션 등을 지원합니다. 달리 명시하지 않는 한 모든 예제에서 사용합니다.
템플릿 컨트롤러
템플릿 컨트롤러는 기본 컨트롤러의 확장입니다. 템플릿 지원, 미리 정의 된 before () 및 after () 메서드가 있습니다. 기본적으로 헤더, 푸터, 사이드 바 등이있는 레이아웃에서 뷰를 래핑하는 데 사용할 수 있습니다. 템플릿 컨트롤러를 생성하려면 Controller_Template 클래스 를 확장해야합니다 . 기본적으로 Controller_Template 을 확장하는 클래스의 모든 메서드 는 템플릿을 사용해야합니다.
다음과 같이 정의됩니다.
class Controller_Employee extends Controller_Template {
public function action_index() {
// add methods
}
}
뷰 장에서 템플릿 컨트롤러에 대해 자세히 설명합니다.
나머지 컨트롤러
Rest Controller는 기본 컨트롤러의 확장입니다. REST API 프로그래밍에 대한 사전 정의 된 지원이 있습니다. 이를 통해 API를 쉽게 구축 할 수 있습니다.
나머지 컨트롤러를 생성하려면 Controller_Rest 클래스 를 확장해야합니다 . 다음과 같이 정의됩니다.
class Controller_Employee extends Controller_Rest {
public function action_index() {
// add methods
}
}
나머지 컨트롤러에 대한 자세한 내용은 Ajax 장에서 설명합니다.
하이브리드 컨트롤러
하이브리드 컨트롤러는 단일 기본 컨트롤러에서 REST 컨트롤러와 템플릿 컨트롤러의 기능을 모두 수행합니다.