- A+
在实际项目中,我们在拿到需求之前,往往要先进行框架的选择和搭建,以及开发一些公用的方法,接下来,博主会将自己用到的公用方法进行封装分享。
控制器架构
在复杂项目中,一个模块并不能满足我们的需求,大多数情况下,我们需要多模块开发。
假设我们的现在的模块分为: 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 方法 }