ThinkPHP3.2.2的插件控制器功能简述
ThinkPHP从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
需要注意的是:目前插件控制器仅支持模块的插件控制器访问,尚不支持全局的公共插件。
相关推荐
-
ThinkPHP3.2.2的插件控制器功能
3.2.2版本开始支持插件控制器的调用,可以通过更加方便的URL地址访问到模块中某个插件定义的控制器. 当URL中传入插件控制器变量的时候,会自动定位到插件控制器中的操作方法. 插件控制器的变量由参数 VAR_ADDON 进行设置,默认为addon,例如我们在URL中传入: 复制代码 代码如下: http://serverName/Home/info/index/addon/SystemInfo 由于传入了addon参数,因此这里的User控制器并非原来的 复制代码 代码如下: Home/Con
-
Thinkphp和onethink实现微信支付插件
thinkPHP和微支付实现的微信支付插件,在微信中调用微信jssdk实现支付,这里有详细的代码和教程,具体看这里: //实现的Wxpay钩子方法 public function Wxpay($param){ require './Addons/Wxpay/WxPayPubHelper/WxPayPubHelper.php'; $jsApi = new \JsApi_pub(); //=========步骤1:网页授权获取用户openid============ if (!isset($_GET
-
thinkphp跨库操作的简单代码实例
实例一:配置config.php文件配置多个数据库配置 'DB_CONFIG2' => 'mysql://root:1234@localhost:3306/thinkphp', 控制器中调用方法: $New = M('表名','前缀没前缀不填写','DB_CONFIG2'); 这里相当于从新连接了数据库远程跨库如果是在同一个服务器数据库可以直接切换: $User = M('数据库名.表名','前缀没有可不填'); 实例二:Model模型中的跨库以下代码填写到模型类中 protected $con
-
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
-
thinkPHP2.1自定义标签库的导入方法详解
本文详细讲述了thinkPHP2.1自定义标签库的导入方法.分享给大家供大家参考,具体如下: TP的手册似乎跟不上节奏, 对自定义标签只是寥寥几句, 摸索了N久, 终于将自定义的标签进行了导入. 心得如下: 1. 情况: 新建自定义的标签库类: @.Mylib.Tag.TagLibTest - 懂TP的应该知道这代表的路径 使用Examples下的Tag演示文件 <?php // +--------------------------------------------------------
-
ThinkPHP分组下自定义标签库实例
本文实例讲述了ThinkPHP分组下自定义标签库的实现方法.分享给大家供大家参考.具体如下: 自定义标签库应该位于ThinkPHP\\Extend\\Driver\\TagLib目录下 1 新建标签类库文件名为TagLibBlog.class.php. 2 编辑刚才新建的类库文件,新建一个类,继承TagLib父类 复制代码 代码如下: import('TagLib'); class TagLibBlog extends TagLib { } 3 在类中声明一个protected成员变量$tags
-
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
-
thinkPHP简单调用函数与类库的方法
本文实例讲述了thinkPHP调用函数与类库的方法.分享给大家供大家参考,具体如下: 手册上说的很冗余,没看懂,下面简单的讲一下具体用法. 函数调用: lib公共函数库叫 common.php App/common/common.php 分组模块下的公共函数库叫 function.php App/Modules/Admin/common/function.php 类库调用: class IndexAction extends Action{ public function index(){ //
-
ThinkPHP使用Smarty第三方插件方法小结
本文实例讲述了ThinkPHP使用Smarty第三方插件的方法.分享给大家供大家参考,具体如下: 如果你在使用ThinkPHP框架的时候不想采用TP自带的模版系统,而使用第三方的模版系统,你有很多其他的选择,在这里我仅介绍Smarty这种比较官方,而且比较强大的模版系统. 由于Smarty兼容PHP4,因此,它的效率会相对低一点点,这个低只是相对的,估计等Smarty啥时候正式放弃PHP4的时候,效率可能会上很大一个台阶. 在TP框架的PlugIns目录下面,有一个SmartTemplate目录
随机推荐
- Angular2 NgModule 模块详解
- VBScript教程 第十课 VBScript编码约定
- 总结iOS中runtime的使用
- iOS应用开发中SQLite的初步配置指南
- 通过MyBatis读取数据库数据并提供rest接口访问
- python实现将内容分行输出
- 解决VS2015中没有报表项(ReportViewer)的方法
- js添加事件的通用方法推荐
- php中的时间显示
- JavaScript中的Repaint和Reflow用法详解
- mysql启动的error 2003和1067错误问题解决方法
- vue.js移动端tab组件的封装实践实例
- JS实现判断滚动条滚到页面底部并执行事件的方法
- 支持IE,Firefox的javascript 日历控件
- 一个Action如何调用两个不同的方法
- [基础知识]Linux新手系列之二
- Java连接操作Oracle数据库代码详解
- Java实现把excel xls中数据转为可直接插入数据库的sql文件
- 浅析C++中模板的那点事
- 新月IDC提供25M免费ASP空间服务