cattong/think-addons
Composer 安装命令:
composer require cattong/think-addons
包简介
addons package for thinkphp5.1.x
README 文档
README
基于ThinkPHP5.1的插件框架。The ThinkPHP 5.1.x Addons Package
安装
composer require cattong/think-addons
配置
公共配置
'addons'=>[
// 是否自动读取取插件钩子配置信息(默认是关闭)
'autoload' => false,
// 当关闭自动获取配置时需要手动配置hooks信息
'hooks' => [
// 可以定义多个钩子
'testhook'=>'test' // 键为钩子名称,用于在业务中自定义钩子处理,值为实现该钩子的插件,
// 多个插件可以用数组也可以用逗号分割
]
]
或者在application\extra目录中新建addons.php,内容为:
<?php
return [
// 是否自动读取取插件钩子配置信息(默认是关闭)
'autoload' => false,
// 当关闭自动获取配置时需要手动配置hooks信息
'hooks' => [
// 可以定义多个钩子
'testhook'=>'test' // 键为钩子名称,用于在业务中自定义钩子处理,值为实现该钩子的插件,
// 多个插件可以用数组也可以用逗号分割
]
];
创建插件
创建的插件可以在view视图中使用,也可以在php业务中使用
安装完成后访问系统时会在项目根目录生成名为addons的目录,在该目录中创建需要的插件。
下面写一个例子:
创建test插件
在addons目录中创建test目录
创建钩子实现类
在test目录中创建Test.php类文件。注意:类文件首字母需大写
<?php
namespace addons\test; // 注意命名空间规范
use think\Addons;
/**
* 插件测试
* @author byron sampson
*/
class Test extends Addons // 需继承think\addons\Addons类
{
// 该插件的基础信息
public $info = [
'name' => 'test', // 插件标识
'title' => '插件测试', // 插件名称
'description' => 'thinkph5插件测试', // 插件简介
'status' => 0, // 状态
'author' => 'byron sampson',
'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类文件,插件配置文件可以省略。
<?php
return [
'display' => [
'title' => '是否显示:',
'type' => 'radio',
'options' => [
'1' => '显示',
'0' => '不显示'
],
'value' => '1'
]
];
创建钩子模板文件
在test目录中创建info.html模板文件,钩子在使用fetch方法时对应的模板文件。
<h1>hello tpl</h1>
如果插件中需要有链接或提交数据的业务,可以在插件中创建controller业务文件,
要访问插件中的controller时使用addon_url生成url链接。
如下:
<a href="{:addons_url('test://Action/link')}">link test</a>
格式为:
test为插件名,Action为controller中的类名,link为controller中的方法
创建插件的controller文件
在test目录中创建controller目录,在controller目录中创建Action.php文件 controller类的用法与tp5中的controller一致
<?php
namespace addons\test\controller;
class Index
{
public function link()
{
echo 'hello link';
}
}
如果需要使用view模板则需要继承
\think\addons\Controller类 模板文件所在位置为插件目录的view中,规则与模块中的view规则一致
<?php
namespace addons\test\controller;
use think\addons\Controller;
class Index extends Controller
{
public function link()
{
return $this->fetch('index/link');
}
}
使用钩子
创建好插件后就可以在正常业务中使用该插件中的钩子了 使用钩子的时候第二个参数可以省略
模板中使用钩子
<div>{:hook('testhook', ['id'=>1])}</div>
php业务中使用
只要是thinkphp5正常流程中的任意位置均可以使用
hook('testhook', ['id'=>1])
插件目录结构
最终生成的目录结构为
tp5
- addons
-- test
--- controller
---- Index.php
--- view
---- index
----- link.html
--- config.php
--- info.html
--- Test.php
- application
- thinkphp
- extend
- vendor
- public
cattong/think-addons 适用场景与选型建议
cattong/think-addons 是一款 基于 PHP 开发的 Composer 扩展包,目前已累计 1.57k 次下载、GitHub Stars 达 2, 最近一次更新时间为 2018 年 09 月 05 日, 在 PHP 生态内属于活跃度较高的组件。
它主要适用于以下技术方向: 「framework」 「plugin」 「addons」 「thinkphp5」 等业务场景。在实际项目中,围绕这些方向常见需要落地的问题包括:接口对接、性能调优、并发安全、与既有框架(Laravel / ThinkPHP / Yii / Webman 等)的兼容适配,以及生产环境的日志埋点与稳定性保障。
我们在过去多个企业项目中使用过 cattong/think-addons 或与其功能相近的方案,如果你在选型或落地过程中遇到问题,例如 版本兼容、二次改造、私有化封装、与内部系统对接、生产 BUG 排查,欢迎联系我们协助评估。
基于 cattong/think-addons 在你已有业务上做功能扩展、字段裁剪、UI 适配、与内部账号 / 权限 / 日志系统的深度对接。
线上偶发问题、内存泄漏、慢查询、并发异常等排查修复;针对高流量场景做缓存、队列、索引层面的调优。
承接完整的项目从需求 → 设计 → 开发 → 上线 → 长期运维;也可按月提供技术保姆服务。
与 cattong/think-addons 相关的其它包
同方向 / 同关键字的高下载量 PHP Composer 包推荐,方便对比选型:
PHP Framework HLEB2 is the foundation of the web application. Provides ease of development and application performance.
CakePHP 4.x AdminLTE Theme.
Laravel Console addons
This composer plugin enables installation of Gravity Perks WordPress plugins from Gravity Wiz. Base on Composer GravityForms (https://github.com/PiotrPress/composer-gravitywiz).
This composer plugin enables installation of GravityForms WordPress plugin and its addons.
Commerce Addons plugin for Craft CMS
统计信息
- 总下载量: 1.57k
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 2
- 点击次数: 2
- 依赖项目数: 0
- 推荐数: 0
其他信息
- 授权协议: Apache-2.0
- 更新时间: 2018-09-05