icy8 / drcms5-addon
0.0.2
2021-03-07 16:11 UTC
Requires
- php: >=7.0
This package is auto-updated.
Last update: 2024-11-08 00:09:05 UTC
README
thinkphp5.0 实现插件功能
项目介绍
主仓 https://github.com/d2gin/drcms5-addon
国内仓 https://gitee.com/icy8/drcms5-addon
这是一个基于 thinkphp5.0实现的插件依赖,目前只支持5.0版本,切勿在5.1及以上使用。
默认的插件总目录是./addons/
,可以自行更改,但不建议更改。
暂处于测试阶段,可能有比较多的地方不完善。
环境要求
php >= 7.0
thinkphp 5.0
composer
安装
composer require icy8/drcms5-addon
功能介绍
- 安装机制: 插件的安装目前没有接入数据库,只读取插件目录。设计上有两个目录是主程序覆盖目录,分别是
application
、public
,这两个目录会在安装时移动覆盖主程序的文件/目录,有冲突会中断安装。还有一个目录是资源目录assets
,安装过程中会在程序根目录自动创建[ROOT_PATH]/public/assets/addons/[addo_name]/
并将文件移入该目录。 - 卸载机制: 删除根目录的资源文件;删除插件目录。
- 开启机制: 暂无
- 关闭机制: 暂无
- 上述机制均可在插件主类中自定义
install
、uninstall
、enable
、disable
方法进行扩展。 - 插件主类: 类文件必须放置在
addons/[addon_name]/[addon_name].php
类名必须与插件名一致。 - 插件访问: http://127.0.0.1/addon/[addon_name]/[controller]/[action] 过程会自动调用插件控制器。
- 插件控制器: 插件访问的基础,所有控制器都必须放置在
addons/[addon_name]/controller
文件夹中,支持多级控制器。插件控制器必须继承drcms5\addon\Controller
,否则会导致模版引用失败。 - 插件模版: 同上,文件放在
addons/[addon_name]/view
。 - URL生成: 用于插件访问的URL可以用函数
addon_url($url = '', $vars = '', $suffix = true, $domain = false)
生成,注意:这是只针对插件访问URL的,主程序URL请用框架自带函数。如果不喜欢用函数的可以使用\drcms5\addon\util\AddonUrl::build()
方法生成,效果是一致的。
插件示例
demo目录有一个简单的示例,复制至程序根目录的./addons/
运行指令
php think draddon --addon=drmo install
访问 http://yourdomain/draddon/drmo/test/index
出现下面文字即安装成功
drmo 插件示例。我是 app_begin hook, 我拦截了程序。
欢迎来到 drmo 插件示例,你访问了drmo/controller/Test.php
阅读示例从Drmo.php入手,有简单注释。
指令
为了方便测试,我特地做了一个简单的指令。
# 插件列表
php think draddon list
# 安装install、卸载uninstall、启动enable、关闭disable # --force 可选,强制执行 # --addon=addon_name 必填,插件名 php think draddon --addon=drmo install
后续版本
- 缓存
- 兼容ThinkPHP 5.1
- 计划是否兼容ThinkPHP 6.0,或者出一个单独的6.0版。