thinkphp插件需满足三要素:目录命名严格(如smsnotify)、入口文件同名且含正确命名空间与继承、$info数组完整包含name/title/identifier/version/author五项;缺一不可,否则后台不显示、无法安装。

想在ThinkPHP项目里快速加个短信通知、微信登录或物流查询功能,又不想动核心代码?插件机制就是为你准备的——它不依赖Composer自动发现,靠的是目录约定、入口文件命名和$info数组三要素驱动,缺一不可。
插件目录与入口文件必须严格匹配
在addons/目录下新建插件文件夹,名字必须全英文、无空格、首字母大写(如SmsNotify),不能用下划线或横线;【SmsNotify目录下必须存在同名的SmsNotify.php文件】,后缀只能是.php,不能是.class.php、index.php或main.php。
打开SmsNotify.php,第一行写命名空间addons\SmsNotify,类名必须是SmsNotify,且继承\think\addons\Addon——漏掉addons\前缀,系统压根扫不到这个插件。
这一步操作起来很简单,直接把文件拖进去就行。
$info数组是插件出现在后台的硬门槛
在SmsNotify.php类内部,必须定义一个名为$info的public数组,且包含以下5项键值对:
① 'name':纯小写+下划线标识符,如'sms_notify'(可与目录名不同,但建议一致);
② 'title':后台显示的中文标题,如'短信通知插件';
③ 'identifier':全局唯一ID,格式为'sms_notify.yourname.plugin',重复会导致安装失败;
④ 'version':三段式版本号,如'1.0.0',后续升级靠它比对;
⑤ 'author':作者名,不能为空字符串。
【漏掉任意一项,尤其是identifier或version,插件在后台“插件管理”页就不会出现】,更不会触发install()方法——这时候你点安装按钮,页面毫无反应,不是代码错了,是根本没被系统识别。
install()必须显式返回true且runtime可写
实现install()方法,里面可以写建表SQL、写配置、初始化缓存等逻辑,但结尾必须写return true;——返回字符串、空数组、null或不写return,都算失败。
点击安装按钮提示“失败”或没反应?先检查runtime/目录是否可写:Linux下常见chmod -R 755不够,得给775,或确保Web进程用户(如www-data)有写权限。
改完插件后,别忘了清缓存:执行php think clear,或手动删掉runtime/cache/下所有文件——否则新写的$info数组可能仍被旧缓存屏蔽。
php免费学习视频:立即使用
踏上前端学习之旅,开启通往精通之路!从前端基础到项目实战,循序渐进,一步一个脚印,迈向巅峰!











