📅  最后修改于: 2020-10-25 04:20:10             🧑  作者: Mango
控制器负责处理FuelPHP应用程序中的每个请求。根据FuelPHP的介绍,控制器位于fuel / app / classes / controller / 。首先让我们创建一个员工控制器。
控制器处理由使用它的作用_方法之一的Web请求。我们可以根据应用程序的需求创建尽可能多的action_方法。默认的action_方法是action_index 。可以通过以下任一URL调用action_index方法。
http://localhost:8080/employee/index
http://localhost:8080/employee/
让我们在员工应用程序中创建一个新的动作方法action_show 。
可以使用以下URL调用action_show方法。
http://localhost:8080/home/show
我们可以先在控制器中创建一个方法。该方法将在每个action_方法调用之前执行。如果该方法不存在,则不会调用它。此方法可帮助我们编写常见操作,例如登录检查,默认数据提取等。
让我们创建一个before方法并打印一条简单的文本消息。
public function before() {
echo "This message comes from before() method";
}
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对象并将其返回。在接下来的章节中,我们将详细学习Response类。
我们可以从另一个控制器扩展一个控制器。以下是基本语法。
class Controller_Employee extends Controller_Welcome {
// controller methods
}
这将有助于共享方法。
燃料可以选择使用机油命令生成控制器。以下是语法。
oil g controller
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中可用的所有不同类型的控制器的基本控制器。它提供了处理Web请求所需的所有基本功能。它支持请求,响应,会话等。除非另有说明,否则我们将在所有示例中使用它。
模板控制器是基本控制器的扩展。它具有模板支持,预定义了before()和after()方法。基本上,它可以用于将视图包装在具有页眉,页脚,侧边栏等的布局中。要创建模板控制器,我们需要扩展Controller_Template类。默认情况下,扩展Controller_Template的类的所有方法都需要使用模板。
定义如下。
class Controller_Employee extends Controller_Template {
public function action_index() {
// add methods
}
}
我们将在“视图”一章中讨论有关模板控制器的更多信息。
休息控制器是基本控制器的扩展。它具有对REST API编程的预定义支持。这将使您轻松构建API。
要创建rest控制器,您需要扩展Controller_Rest类。定义如下。
class Controller_Employee extends Controller_Rest {
public function action_index() {
// add methods
}
}
我们将在Ajax一章中讨论有关rest控制器的更多信息。
混合控制器在单个基本控制器中执行REST控制器和模板控制器的功能。