3.2.2版本开始支持插件控制器的调用,可以通过更加方便的URL地址访问到模块中的插件定义的控制器。

当URL中传入插件控制器变量的时候,会自动定位到插件控制器中的操作方法。

大理石平台精度等级

插件控制器的变量由参数 VAR_ADDON 进行设置,默认为addon,例如我们在URL中传入: http://serverName/Home/info/index/addon/SystemInfo

由于传入了addon参数,因此这里的Info控制器并非原来的 Home/Controller/InfoController.class.php

而是调用SystemInfo插件(位于Home/Addon目录下面)的InfoController控制器了,文件位于 Home/Addon/SystemInfo/Controller/InfoController.class.php

插件控制器本身的定义和普通的访问控制器一样,例如:

  1. namespace Home\Addon\SystemInfo\Controller;
  2. class InfoController extends \Think\Controller{
  3. public function index(){
  4. echo 'Addon SystemInfo';
  5. }
  6. }

这样,我们在访问http://serverName/Home/info/index/addon/SystemInfo的时候 就会输出 Addon SystemInfo

如果我们的插件目录不是Addon,而是Plugin,那么需要在配置文件中定义:

  1. 'VAR_ADDON' => 'plugin'

然后访问URL地址就变成了 http://serverName/Home/info/index/plugin/SystemInfo

注意:目前插件控制器仅支持模块的插件控制器访问,尚不支持全局的公共插件。

3.2.3版本开始,插件控制器默认和模块同级,并增加ADDON_PATH常量用于定义插件控制器的目录,并且以目录名作为插件控制器的命名空间根,同样,假如我们在URL中传入:http://serverName/Home/info/index/addon/SystemInfo

3.2.3版本中,实际访问的插件控制器是 Addon/SystemInfo/Controller/InfoController.class.php

插件控制器的定义如下:

  1. namespace Addon\SystemInfo\Controller;
  2. class InfoController extends \Think\Controller{
  3. public function index(){
  4. echo 'Addon SystemInfo';
  5. }
  6. }

默认情况下,插件控制器的根目录位于和模块同级的Addon目录下面,如果需要更改插件控制器的目录,可以定义ADDON_PATH常量,例如:

  1. define('ADDON_PATH', APP_PATH.'Common/Addon');

并且在项目配置文件中使用AUTOLOAD_NAMESPACE参数重新定义Addon的命名空间路径,例如:

  1. 'AUTOLOAD_NAMESPACE'=>array(
  2. 'Addon'=> APP_PATH.'Common/Addon',
  3. )
 

thinkphp 插件控制器的更多相关文章

  1. thinkphp 插件

    1.切换到项目根目录,使用composer require 5ini99/think-addons:dev-master命令安装thinkphp插件 如果是root用户或是管理员执行的话会有提示 等一 ...

  2. ThinkPHP新建控制器

    ThinkPHP新建控制器 一.效果图 二.步骤 1.新建控制器文件 2.编写控制器文件 3.访问控制器 三.注意事项

  3. selected 刷新页面后selected选中的值保持不表(thinkphp 从控制器assign 传值到js)

    昨晚解决select 刷新页面以后选择的值保持不变,要想让seleted不变,有两种思路, 1,在提交表单的时候,将所选择的option的属性设为checked . 2.将option的value或者 ...

  4. thinkphp空控制器的处理

    <?php namespace Admin\Controller; use Think\Controller; class DengLuController extends Controller ...

  5. onethink插件控制器如何访问?

    具体路由分析就不说啦!就是那样.这里我只是方便访问来做一个记录,方便复制粘贴访问: 例如:新增一个Baoming的插件: 那么如何,访问这个控制里面方法呢? 第一种情况:这个控制器使用的是Admin模 ...

  6. ThinkPHP跨控制器调用方法

    跨控制器调用方法 1. 先造对象,再调用里面的方法 $sc=new \Home\Controller\IndexController();  用绝对路径找echo $sc->ShuChu(); ...

  7. THINKPHP之控制器

    如何新增控制器? 在Lib/Action中新增一个控制器:ProductAction.class.php: <?php class ProductAction extends Action{   ...

  8. thinkphp 空控制器

    空控制器的概念是指当系统找不到请求的控制器名称的时候,系统会尝试定位空控制器(EmptyController),利用这个机制我们可以用来定制错误页面和进行URL的优化. 大理石平台价格表 现在我们把前 ...

  9. thinkphp通用控制器

    <?php namespace 目录\Controller; class TypeController extends Controller { public function add() { ...

随机推荐

  1. Solr6.6环境安装及core的创建(win7环境)

    1.下载solr6.6 并解压 地址: http://www.apache.org/dyn/closer.lua/lucene/solr/6.6.0 2.安装JDK1.8 地址: http://www ...

  2. Java中equals和hashcode的区别?

    Java中equals和hashcode方法是在Object对象中的,所以每个对象都有这两个方法,大多数时候我们为了实现特定需求需要重写这两个方法 equals和hashcode方法常用在同一个类中用 ...

  3. 四.python注释说明

    Python第四节 Python注释 注释说明 注释分为单行注释和多行注释 单行注释以#开头 # 注释示例 > print("上面是一个注释的示例") 多行注释 多行注释可以 ...

  4. unix, PF_UNIX, AF_UNIX, PF_LOCAL, AF_LOCAL - 用于本地内部进程通讯的套接字。

    SYNOPSIS(总览) #include <sys/socket.h> #include <sys/un.h> unix_socket = socket(PF_UNIX, t ...

  5. linux指令【参考鸟哥的Linux私房菜】

    date指令  显示日期 cal指令 显示日历 bc  计算器  scale+number  显示几位小数  quit退出bc tab键  命令提示  入输入ca,按下tab键,会将所有ca的指令全部 ...

  6. 笔记33 Spring MVC的高级技术——Spring MVC配置的替代方案

    一.自定义DispatcherServlet配置  AbstractAnnotationConfigDispatcherServletInitializer所完成 的事情其实比看上去要多.在Spitt ...

  7. HTTP状态码(转)

    转自菜鸟教程:https://www.runoob.com/http/http-status-codes.html HTTP状态码共分为5种类型: HTTP状态码分类 分类 分类描述 1** 信息,服 ...

  8. python基础第9章 魔法方法、属性和迭代器(一)

    __getitem__和__setitem__: 这个方法返回与指定键想关联的值.对序列来说,键应该是0~n-1的整数,其中n为序列的长度.对映射来说,键可以是任何类型. class A : __ge ...

  9. 使用Process子类创建进程

    #_author:来童星#date:2019/12/17# 使用Process子类创建进程from multiprocessing import Processimport timeimport os ...

  10. ArrayList 详解

    基本介绍 ArrayList: 支持null元素.有顺序.元素可以重复. 可以动态增长和缩减的索引序列,基于数组实现的List类(查询效率高,而在插入删除性能下降很多(需要移动数组元素)). 底层的数 ...