php使用addons,GitHub - yuninf/tp5-addons: ThinkPHP addons autoload
addons
The ThinkPHP5 Addons Package
安装
composer require yuninf/addons
配置
公共配置
'addons'=>[
// 可以定义多个钩子
'testhook'=>'test' // 键为钩子名称,用于在业务中自定义钩子处理,值为实现该钩子的插件,
// 多个插件可以用数组也可以用逗号分割
]
或者在application\extra目录中新建addons.php,内容为:
return [
// 可以定义多个钩子
'testhook'=>'test' // 键为钩子名称,用于在业务中自定义钩子处理,值为实现该钩子的插件,
// 多个插件可以用数组也可以用逗号分割
]
创建插件
创建的插件可以在view视图中使用,也可以在php业务中使用
安装完成后访问系统时会在项目根目录生成名为addons的目录,在该目录中创建需要的插件。
下面写一个例子:
创建test插件
在addons目录中创建test目录
创建钩子实现类
在test目录中创建Test.php类文件。注意:类文件首字母需大写
namespace addons\test;// 注意命名空间规范
use think\Addons;
/**
* 插件测试
*/
class Test extends Addons// 需继承think\addons\Addons类
{
// 该插件的基础信息
public $info = [
'name' => 'test',// 插件标识
'title' => '插件测试',// 插件名称
'description' => 'thinkph5插件测试',// 插件简介
'status' => 0,// 状态
'author' => 'yuninf',
'version' => '0.1'
];
/**
* 插件安装方法
* @return bool
*/
public function install()
{
return true;
}
/**
* 插件卸载方法
* @return bool
*/
public function uninstall()
{
return true;
}
/**
* 实现的testhook钩子方法
* @return mixed
*/
public function testhook($param)
{
// 调用钩子时候的参数信息
print_r($param);
// 当前插件的配置信息,配置信息存在当前目录的config.php文件中,见下方
print_r($this->getConfig());
// 可以返回模板,模板文件默认读取的为插件目录中的文件。模板名不能为空!
return $this->fetch('info');
}
}
创建插件配置文件
在test目录中创建config.php类文件,插件配置文件可以省略。
return [
'display' => [
'title' => '是否显示:',
'type' => 'radio',
'options' => [
'1' => '显示',
'0' => '不显示'
],
'value' => '1'
]
];
创建钩子模板文件
在test目录中创建info.html模板文件,钩子在使用fetch方法时对应的模板文件。
hello tpl
如果插件中需要有链接或提交数据的业务,可以在插件中创建controller业务文件,
要访问插件中的controller时使用addon_url生成url链接。
如下:
link test
格式为:
test为插件名,Action为controller中的类名,link为controller中的方法
创建插件的controller文件
在test目录中创建controller目录,在controller目录中创建Action.php文件
controller类的用法与tp5中的controller一致
namespace addons\test\controller;
class Action
{
public function link()
{
echo 'hello link';
}
}
如果需要使用view模板则需要继承\think\addons\Base类
模板文件所在位置为插件目录的view中,规则与模块中的view规则一致
namespace addons\test\controller;
use think\addons\Base;
class Action extends Base
{
public function link()
{
return $this->fetch();
}
}
使用钩子
创建好插件后就可以在正常业务中使用该插件中的钩子了
使用钩子的时候第二个参数可以省略
模板中使用钩子
php业务中使用
只要是thinkphp5正常流程中的任意位置均可以使用
hook('testhook', ['id'=>1])
php使用addons,GitHub - yuninf/tp5-addons: ThinkPHP addons autoload相关推荐
- PHP TP5框架 安装运行 Warning: require(E:\phpstudy_pro\WWW\TP5\tp5\public/../thinkphp/base.php): failed to
创建一个新的项目:进入项目的根目录执行 git 命令: 先执行 git clone -b 5.1 https://git.coding.net/liu21st/thinkphp5.git tp5 进入 ...
- addons.php,GitHub - zz-studio/think-addons: The ThinkPHP6 Addons Package
think-addons The ThinkPHP 6 Addons Package 安装 composer require zzstudio/think-addons 配置 生成配置 系统安装后会自 ...
- tp5 php post方式提交无提示,使用TP5框架时,代码提交到GitHub,无法提交thinkphp核心库...
1.首先,我们要先将.gitignore中的thinkphp这个目录去掉,表示不忽略这个文件夹(其他vendor等文件夹也是一样操作): 这个时候我们提交会发现thinkphp文件夹上去了,但是文件夹 ...
- app 应用商店系统php,GitHub - ChhXin/appstore-admin: 基于ThinkPHP的应用商店后台管理系统...
数据库大作业 简介 ThinkPHP 是一个免费开源的,快速.简单的面向对象的 轻量级PHP开发框架 ,创立于2006年初,遵循Apache2开源协议发布,是为了敏捷WEB应用开发和简化企业应用开发而 ...
- php7cms框架,GitHub - itsky71/itskycms: 基于ThinkPHP框架的一个CMS系统
ITskyCMS简介 ITskyCMS 是一款完全开源免费的PHP+MYSQL系统.核心采用了Thinkphp框架,同时也作为开源软件发布.集众多开源项目于一身的特点,使本系统从安全,效率,易用及可扩 ...
- php嵌套序列化输出tp5.0,ThinkPHP v5.0.x 反序列化利用链挖掘
前言 前几天审计某cms基于ThinkPHP5.0.24开发,反序列化没有可以较好的利用链,这里分享下挖掘ThinkPHP5.0.24反序列化利用链过程.该POP实现任意文件内容写入,达到getshe ...
- php模拟微信公众号服务器,GitHub - Lin07ux/wechat-third-server: 使用 ThinkPHP、Vue 搭建一个带有后台的微信公众号第三方服务器的基础模板...
微信公众号第三方服务器 该项目用于实现一个最基本的微信公众号第三方服务器开发的模板. 基于: ThinkPHP v3.2.3 Vue v2.2.0 Vue-resource v1.0.3 功能 微信用 ...
- 微信公众号服务器页面模板,GitHub - devsnippet/wechat-third-server: 使用 ThinkPHP、Vue 搭建一个带有后台的微信公众号第三方服务器的基础模板...
微信公众号第三方服务器 该项目用于实现一个最基本的微信公众号第三方服务器开发的模板. 基于: ThinkPHP v3.2.3 Vue v2.2.0 Vue-resource v1.0.3 功能 微信用 ...
- Node.js 调用 C++ 方法 / C++ Addons 详解
最近开发涉及到了一些Node.js调用C++的地方,于是网上搜了一下,发现网上好多文章都是比较片面的东西,没法直接使用.于是花点时间总结一下. Android开发中Java 调用C++的部分叫JNI, ...
最新文章
- 输出链表倒数第K个节点
- 同步文件,不需要密码
- FormView里用FindControl找不到控件的解决方法
- html页面渲染vue组件,Vue组件页面渲染的基本流程
- Go map[int64]int64 写入 redis 占用多少内存
- 微课|中学生可以这样学Python(例8.23):快速排序算法
- json规范,平时不注意的特殊符号
- 科来网络全流量安全分析系统[Study]
- NMOS与PMOS的区分及使用
- 制作u盘winpe启动盘_U盘PE启动盘制作方法
- 冰点还原6.61 For Win2003 打造全过程
- 数字后端——信号完整性分析
- 博通蓝牙linux,好消息,使用Broadcom蓝牙的有福了,新驱动,新选择,BrcmPatchRAM...
- 齐次Markov链的遍历性判定
- DIM的全称及本来意义
- 关于功耗芯片那些事(四)
- fitbit手表中文说明书_入侵Fitbit-为Twitter DM模拟寻呼机!
- 进程process和线程thread应用和区别——Python学习笔记12
- 高效的稳定性测试工具Fastbot的使用
- 华为人又出事了,“企业文化”还有多少文章可作?