苹果CMS插件中的控制器和ThinkPHP5的控制器类似,请查看ThinkPHP5控制器章节
请参考:thinkphp5控制器
特别提醒:
苹果CMS 插件控制器和ThinkPHP5控制器不同之处主要有以下几点,并且需要在后台开启路由模式。
基类不同:
插件控制器基类为:thinkaddonsController
ThinkPHP5控制器基类为:thinkController
请求URL不同:
插件控制器请求方法为:http://www.da.com/addons/mydemo/控制器名/方法
ThinkPHP5控制器请求方法为:http://www.da.com/模块名/控制器名/方法
当使用层级控制器时:
插件控制器请求方法为:http://www.da.com/addons/mydemo/目录名.控制器名/方法
ThinkPHP5控制器请求方法为:http://www.da.com/模块名/目录名.控制器名/方法
插件控制器必须继承thinkaddonsController这个基类控制器。
控制器定义:
一个典型的控制器代码如下:
1 2 3 4 5 6 7 8 9 10 11 12 | <? php namespace addonsmydemocontroller; use thinkaddonsController; class Index extends Controller { public function index() { $this->error("当前插件暂无前台页面"); } } |
其文件位置位于addons/mydemo/Index.php。
控制器请求:
1 | http://www.da.com/addons/mydemo/控制器名/控制器方法 |
基类控制器:
苹果CMS 的基类控制器thinkaddonsController位于vendor/karsonzhang/fastadmin-addons/src/addons/Controller.php。
基类控制器是FastAdmin插件系统的一部分,在基类控制器进行了一系列的操作,包括插件控制器权限检查、语言包加载、布局设定、配置加载等操作。
同时基类控制器也是继承自thinkController,此控制器基类是ThinkPHP5自带的基类控制器,因此也可以实现绝大多数ThinkPHP5官方文档控制器章节的功能。
基类属性:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 | protected $addon = null; //插件名称 protected $controller = null; //控制器名称 protected $action = null; //方法名称 /** * 无需登录的方法,同时也就不需要鉴权了 * @var array */ protected $noNeedLogin = ['*']; /** * 无需鉴权的方法,但需要登录 * @var array */ protected $noNeedRight = ['*']; /** * 权限Auth,如果用户是登录状态,可以直接从中读取用户信息 * @var Auth */ protected $auth = null; /** * 布局模板,默认不启用 * @var string */ protected $layout = null; |