ThinkPHP从3.2.2版本开始支持插件控制器的调用,可以通过更加方便的URL地址访问到模块中某个插件定义的控制器。
当URL中传入插件控制器变量的时候,会自动定位到插件控制器中的操作方法。
插件控制器的变量由参数 VAR_ADDON 进行设置,默认为addon,例如我们在URL中传入:
1
|
http://serverName/Home/info/index/addon/SystemInfo |
由于传入了addon参数,因此这里的User控制器并非原来的
1
|
Home/Controller/InfoController.class.php |
而是调用SystemInfo插件(位于Home/Addon目录下面)的InfoController控制器了,文件位于
1
|
Home/Addon/SystemInfo/Controller/InfoController.class.php |
插件控制器本身的定义和普通的访问控制器一样,例如:
1
2
3
4
5
6
|
namespace Home\Addon\SystemInfo\Controller; class InfoController extends \Think\Controller{ public function index(){ echo 'Addon SystemInfo' ; } } |
这样,我们在访问
1
|
http://serverName/Home/info/index/addon/SystemInfo |
的时候 就会输出
1
|
Addon SystemInfo |
如果我们的插件目录不是Addon,而是Plugin,那么需要在配置文件中定义:
1
|
'VAR_ADDON' => 'plugin' |
然后访问URL地址就变成了
1
|
http://serverName/Home/info/index/plugin/SystemInfo |
需要注意的是:目前插件控制器仅支持模块的插件控制器访问,尚不支持全局的公共插件。