php控制器详解,ThinkPHP5 控制器(一:控制器架构)

在实际项目中,我们在拿到需求之前,往往要先进行框架的选择和搭建,以及开发一些公用的方法,接下来,博主会将自己用到的公用方法进行封装分享。

控制器架构

在复杂项目中,一个模块并不能满足我们的需求,大多数情况下,我们需要多模块开发。

假设我们的现在的模块分为: admin 、 supplier 、home 三个模块。

因此我们需要在项目中加入 common 模块 (公用模块),并在配置文件  config.php中将其设置为 禁止访问。如下:

'deny_module_list'       => ['common'],

接下来,在common下建立 controller 文件夹,并建立Base (公用基类)文件。

namespace app\common\controller;

use think\Controller;

/**

* 基类控制器

*/

abstract class Base extends Controller

{

}

再建立  AuthBase.php 文件来进行权限控制

namespace app\common\controller;

class AuthBase extends Base

{

public function _initialize ()

{

parent::_initialize ();

//加入权限验证

}

}

接下来,我们以admin模块为例,在admin下 建立 controller文件夹和 AdminBase.php (Admin模块公用类)。

namespace app\admin\controller;

use app\common\controller\AuthBase;

class AdminBase extends AuthBase

{

//admin模块下公用的 controller 方法

}