ThinkPHP3.2.2的插件控制器功能
3.2.2版本开始支持插件控制器的调用,可以通过更加方便的URL地址访问到模块中某个插件定义的控制器。
当URL中传入插件控制器变量的时候,会自动定位到插件控制器中的操作方法。
插件控制器的变量由参数 VAR_ADDON 进行设置,默认为addon,例如我们在URL中传入:
http://serverName/Home/info/index/addon/SystemInfo
由于传入了addon参数,因此这里的User控制器并非原来的
Home/Controller/InfoController.class.php
而是调用SystemInfo插件(位于Home/Addon目录下面)的InfoController控制器了,文件位于
Home/Addon/SystemInfo/Controller/InfoController.class.php
插件控制器本身的定义和普通的访问控制器一样,例如:
namespace Home\Addon\SystemInfo\Controller;
class InfoController extends \Think\Controller{
public function index(){
echo 'Addon SystemInfo';
}
}
这样,我们在访问
http://serverName/Home/info/index/addon/SystemInfo
的时候 就会输出
Addon SystemInfo
如果我们的插件目录不是Addon,而是Plugin,那么需要在配置文件中定义:
'VAR_ADDON' => 'plugin'
然后访问URL地址就变成了
http://serverName/Home/info/index/plugin/SystemInfo
注意:目前插件控制器仅支持模块的插件控制器访问,尚不支持全局的公共插件。
注意:该用法仅针对官网下载的3.2.2版本。后续将会做出一些细节的调整,包括定义插件位置等等。
更多的用法,请参考后续的详细手册内容。
相关推荐
-
ThinkPHP上使用多说评论插件的方法
本文实例讲述了ThinkPHP上使用多说评论插件的方法.分享给大家供大家参考.具体实现方法如下: 先前访问网友的一些网站,他们好些的局部都发生了变化,如文章的评论模块设计得和谐美观,集表情和分享工具于一体,而且可以盖楼式评论,当时我真是称赞不已,真牛啊,能开发出这样的评论模块!后来聊天我才知道,原来他们是使用了多说评论插件. 什么是多说? 多说是一款追求极致体验的社会化评论框,可以用微博.QQ.人人.豆瓣等帐号登录并评论,用社交账号登录,进行评论,同时转发到社交平台(可选),进行回复.标记喜欢.
-
解决ThinkPHP下使用上传插件Uploadify浏览器firefox报302错误的方法
最近用ThinkPHP开发一个项目,集成了批量上传文件插件Uploadify,在谷歌Chrome和IE下都能正常上传,只有火狐下提示这个错误,网上找了很多解决办法,基本都说flash在firefox下重新发起session会话,由于session没有验证通过所以报错,这个问题网上有很多解决方案,但是试了很多,都没有真正解决我的问题,最后看了官方的解决方案 http://www.uploadify.com/documentation/uploadify/using-sessions-with-up
-
thinkPHP简单导入和使用阿里云OSSsdk的方法
本文实例讲述了thinkPHP简单导入和使用阿里云OSSsdk的方法.分享给大家供大家参考,具体如下: 照做绝对行,在ThinkPHP中,第三方库都放在ThinkPHP/Library/Vendor/路径下. 1.下载OSS PHP SDK:https://help.aliyun.com/document_detail/oss/sdk/php-sdk/install.html 2.在ThinkPHP/Library/Vendor/下建立一个OSS目录,将解压后的SDK拷贝到这个目录: 在Thin
-
thinkphp跨库操作的简单代码实例
实例一:配置config.php文件配置多个数据库配置 'DB_CONFIG2' => 'mysql://root:1234@localhost:3306/thinkphp', 控制器中调用方法: $New = M('表名','前缀没前缀不填写','DB_CONFIG2'); 这里相当于从新连接了数据库远程跨库如果是在同一个服务器数据库可以直接切换: $User = M('数据库名.表名','前缀没有可不填'); 实例二:Model模型中的跨库以下代码填写到模型类中 protected $con
-
ThinkPHP分组下自定义标签库实例
本文实例讲述了ThinkPHP分组下自定义标签库的实现方法.分享给大家供大家参考.具体如下: 自定义标签库应该位于ThinkPHP\\Extend\\Driver\\TagLib目录下 1 新建标签类库文件名为TagLibBlog.class.php. 2 编辑刚才新建的类库文件,新建一个类,继承TagLib父类 复制代码 代码如下: import('TagLib'); class TagLibBlog extends TagLib { } 3 在类中声明一个protected成员变量$tags
-
ThinkPHP使用Smarty第三方插件方法小结
本文实例讲述了ThinkPHP使用Smarty第三方插件的方法.分享给大家供大家参考,具体如下: 如果你在使用ThinkPHP框架的时候不想采用TP自带的模版系统,而使用第三方的模版系统,你有很多其他的选择,在这里我仅介绍Smarty这种比较官方,而且比较强大的模版系统. 由于Smarty兼容PHP4,因此,它的效率会相对低一点点,这个低只是相对的,估计等Smarty啥时候正式放弃PHP4的时候,效率可能会上很大一个台阶. 在TP框架的PlugIns目录下面,有一个SmartTemplate目录
-
thinkPHP简单调用函数与类库的方法
本文实例讲述了thinkPHP调用函数与类库的方法.分享给大家供大家参考,具体如下: 手册上说的很冗余,没看懂,下面简单的讲一下具体用法. 函数调用: lib公共函数库叫 common.php App/common/common.php 分组模块下的公共函数库叫 function.php App/Modules/Admin/common/function.php 类库调用: class IndexAction extends Action{ public function index(){ //
-
thinkPHP2.1自定义标签库的导入方法详解
本文详细讲述了thinkPHP2.1自定义标签库的导入方法.分享给大家供大家参考,具体如下: TP的手册似乎跟不上节奏, 对自定义标签只是寥寥几句, 摸索了N久, 终于将自定义的标签进行了导入. 心得如下: 1. 情况: 新建自定义的标签库类: @.Mylib.Tag.TagLibTest - 懂TP的应该知道这代表的路径 使用Examples下的Tag演示文件 <?php // +--------------------------------------------------------
-
Thinkphp和onethink实现微信支付插件
thinkPHP和微支付实现的微信支付插件,在微信中调用微信jssdk实现支付,这里有详细的代码和教程,具体看这里: //实现的Wxpay钩子方法 public function Wxpay($param){ require './Addons/Wxpay/WxPayPubHelper/WxPayPubHelper.php'; $jsApi = new \JsApi_pub(); //=========步骤1:网页授权获取用户openid============ if (!isset($_GET
-
ThinkPHP3.2.2的插件控制器功能简述
ThinkPHP从3.2.2版本开始支持插件控制器的调用,可以通过更加方便的URL地址访问到模块中某个插件定义的控制器. 当URL中传入插件控制器变量的时候,会自动定位到插件控制器中的操作方法. 插件控制器的变量由参数 VAR_ADDON 进行设置,默认为addon,例如我们在URL中传入: http://serverName/Home/info/index/addon/SystemInfo 由于传入了addon参数,因此这里的User控制器并非原来的 Home/Controller/InfoC
-
ThinkPHP使用UTFWry地址库进行IP定位实例
可以在官网的 http://www.thinkphp.cn/extend/223.html下载IP定位扩展类库,或者下载扩展包( http://www.thinkphp.cn/down/253.html)里面也已经包含该扩展类了.如果是单独下载的上传类库,把解压后的IpLocation.class.php 放入ThinkPHP/Extend/Library/ORG/Net/(如果没有请手动创建)目录下面. 一.获取IP地址 如果你仅仅需要获取用户访问的IP地址,那么直接使用系统内置的get_cl
随机推荐
- IOS获取各种文件目录路径的方法
- jQueryUI 拖放排序遇到滚动条时有可能无法执行排序的小bug及解决方案
- javascript基础知识分享之类与函数化
- Oracle中serveroutput参数一次设置永久保存方法
- js中的屏蔽的使用示例
- PHP截断标题且兼容utf8和gb2312编码
- Android自定义View绘制四位数随机码
- Mysql使用insert插入多条记录 批量新增数据
- 使用ASP删除指定IIS站点
- javascript textContent与innerText的异同分析
- mysql获取group by总记录行数的方法
- 浅析jQuery事件之on()方法绑定多个选择器,多个事件
- BBS3000漏洞
- XP/win2003下发现1G的内存比512M还慢的解决方法
- 智能布线管理系统应用及前景介绍
- hmac模块生成加入了密钥的消息摘要详解
- 详解如何提升JSON.stringify()的性能
- 详解python websocket获取实时数据的几种常见链接方式
- Django 项目重命名的实现步骤解析
- Python+pandas计算数据相关系数的实例