📜  FuelPHP-控制器

📅  最后修改于: 2020-10-25 04:20:10             🧑  作者: Mango


控制器负责处理FuelPHP应用程序中的每个请求。根据FuelPHP的介绍,控制器位于fuel / app / classes / controller / 。首先让我们创建一个员工控制器。

employee.php

控制器方法

控制器处理由使用它的作用_方法之一的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

结果

显示方式

before()方法

我们可以在控制器中创建一个方法。该方法将在每个action_方法调用之前执行。如果该方法不存在,则不会调用它。此方法可帮助我们编写常见操作,例如登录检查,默认数据提取等。

让我们创建一个before方法并打印一条简单的文本消息。

public function before() { 
   echo "This message comes from before() method"; 
} 

具有先行动作的索引页

行动前索引

显示带有操作前的页面

行动前展示

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对象并将其返回。在接下来的章节中,我们将详细学习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控制器和模板控制器的功能。