ThinkPHP插件需严格遵循命名规范与结构要求:插件目录名(如Weather)和入口文件名(Weather.php)必须全英文、首字母大写、大小写完全匹配;命名空间为addons\Weather,类名为Weather并继承\think\addons\Addon;$info数组须含name、title、identifier、version、author五项且格式正确;install()方法必须返回true;安装前需清空runtime/cache并确保runtime可写。

想给ThinkPHP项目加个新功能,又不想改核心代码?插件就是为你准备的——它像USB设备一样即插即用,但必须严格按规则“插”,否则系统根本认不出它。
插件目录和入口文件怎么建
第一步:在项目根目录下的 addons 文件夹里新建一个文件夹,名字必须全英文、无空格、首字母大写,比如你要做“天气预报”插件,就叫 Weather(不能是 weather、weather-forecast 或 weather_forecast)。
第二步:进入这个 Weather 文件夹,新建一个 PHP 文件,文件名必须和文件夹名完全一致,包括大小写,后缀只能是 .php,所以是 Weather.php(不是 index.php、main.php 或 Weather.class.php)。
第三步:打开 Weather.php,写入基础类结构。命名空间必须是 addons\Weather,类名必须是 Weather,且继承 \think\addons\Addon(注意不是 \app\common\controller\Addons,那是老版本写法)。
立即学习“PHP免费学习笔记(深入)”;
这一步漏掉命名空间前缀 addons\,或者类名拼错一个字母,插件就会彻底隐身——后台列表里连影子都看不到。
插件信息数组$info怎么填
在 Weather.php 文件顶部的类定义上方,直接写一个全局变量 $info,它必须是一个关联数组,且五项缺一不可:
name:纯小写英文+下划线,如 'weather_forecast';
title:后台显示的中文名,如 '天气预报插件';
identifier:全局唯一ID,格式为 'weather_forecast.yourname.plugin'(yourname 换成你自己的标识,不能用 admin、test 这种通用词);
version:三段式数字,如 '1.0.0';
author:你的真名或署名,不能为空字符串。
identifier 重复会导致安装失败,version 写成 '1' 或 'v1.0' 都会触发校验失败——系统只认 x.y.z 格式。
安装方法install()怎么写才生效
方法一:最简写法(适合无数据库操作的插件)
在 Weather 类里写一个 install() 方法,里面只有一行:return true;。别加 echo、var_dump,也别返回 'success' 或 [],必须是布尔 true。
方法二:带数据库表创建(需配套 install.sql)
先在 Weather 目录下新建 install.sql 文件,写好建表语句;
然后在 install() 方法里调用 $this->executeSql('install');;
最后仍要以 return true; 结尾。
runtime/ 目录不可写,install() 就永远卡住——哪怕代码完全正确,点击安装按钮也没反应,连错误提示都不会出来。
插件怎么让后台看见并安装
① 清空 runtime/cache/ 下所有文件(不要只删部分,全部清);
② 确保 Web 服务器用户(如 www-data 或 nginx)对 runtime/ 有写权限(Linux 下建议 chmod -R 775 runtime);
③ 访问后台「插件管理」页,刷新一次;
④ 如果插件没出现,立刻检查 $info 数组是否凑齐五项、identifier 是否唯一、Weather.php 文件名是否大小写完全匹配。
这一步做完,插件名称就会出现在列表里,点击「安装」按钮,成功后状态变成「已启用」。



















