🌸
💫
跳转到内容
非官方中文文档 彩虹工具箱

插件开发概述

🔌 插件开发概述

扩展 Toolbox 功能,打造属于你的工具

插件是 Toolbox 的扩展模块,可以为平台添加新的工具功能。通过插件系统,你可以:

  • 🛠️ 开发自定义工具
  • 🔧 扩展现有功能
  • 🎨 自定义界面样式
  • 🔗 集成第三方服务

开发工具

创建 JSON 格式化、代码转换、加密解密等开发辅助工具

实用工具

开发二维码生成、IP 查询、单位换算等日常实用工具

娱乐工具

开发小游戏、趣味生成器等娱乐功能

数据工具

开发数据处理、格式转换、分析统计等工具

开发 Toolbox 插件需要掌握以下技术:

技术用途熟练度要求
PHP 7.4+后端逻辑处理⭐⭐⭐
ThinkPHP 6PHP 框架⭐⭐
HTML5页面结构⭐⭐⭐
CSS3样式设计⭐⭐
JavaScript前端交互⭐⭐⭐
Vue.js前端框架(可选)⭐⭐
LayuiUI 组件库⭐⭐
┌─────────────┐ ┌─────────────┐ ┌─────────────┐
│ 1. 规划 │ → │ 2. 开发 │ → │ 3. 测试 │
│ 确定功能 │ │ 编写代码 │ │ 验证功能 │
└─────────────┘ └─────────────┘ └─────────────┘
┌─────────────┐ ┌─────────────┐ ┌─────────────┐
│ 6. 维护 │ ← │ 5. 发布 │ ← │ 4. 打包 │
│ 更新迭代 │ │ 分享插件 │ │ 生成安装包 │
└─────────────┘ └─────────────┘ └─────────────┘
  • 确定工具的功能和目标用户
  • 设计界面布局和交互流程
  • 规划数据处理和存储方式
  • 创建插件目录结构
  • 编写后端逻辑(App.php)
  • 编写前端界面(index.html)
  • 添加静态资源(CSS/JS/图片)
  • 本地功能测试
  • 兼容性测试
  • 性能测试
  • 整理文件结构
  • 编写说明文档
  • 生成安装包
  • 发布到 GitHub
  • 分享给社区
  • 收集用户反馈
  • 修复 Bug
  • 功能迭代
  • 版本更新

一个标准的 Toolbox 插件包含以下文件:

plugin/
└── your_plugin/ # 插件目录(小写英文+下划线)
├── App.php # 插件主类(必需)
├── index.html # 插件首页(必需)
├── plugin.json # 插件配置(可选)
├── config.html # 配置页面(可选)
└── static/ # 静态资源目录(可选)
├── css/
│ └── style.css
├── js/
│ └── main.js
└── images/
└── logo.png

下面是一个最简单的插件示例:

<?php
/**
* 示例工具
*/
namespace plugin\demo\hello;
use app\Plugin;
class App extends Plugin
{
public function index()
{
return $this->view();
}
}
<div class="container">
<h2>Hello Toolbox!</h2>
<p>这是我的第一个插件~</p>
</div>

推荐使用以下环境:

  • PHP: 8.0+
  • Web 服务器: Nginx 或 Apache
  • 数据库: MySQL 5.7+
  • IDE: VS Code、PHPStorm 等

编辑 .env 文件开启调试模式:

APP_DEBUG = true

确保插件目录有写入权限:

Terminal window
chmod -R 755 plugin/

如果你是插件开发新手,建议按以下顺序学习:

  1. 📖 目录结构 - 了解插件的文件组织
  2. ⚙️ 配置文件 - 学习插件配置
  3. 📏 开发规范 - 掌握编码规范
  4. 🐛 调试技巧 - 学会排查问题
  5. 🚀 发布插件 - 分享你的作品
  • 使用有意义的插件名称
  • 编写清晰的代码注释
  • 遵循安全规范
  • 提供使用说明
  • 处理错误和异常
  • 直接修改核心文件
  • 使用硬编码的配置
  • 忽略输入验证
  • 不做错误处理
  • 代码冗余重复

在开发过程中遇到问题?

  • 📚 查阅 ThinkPHP 6 文档
  • 🔍 参考现有插件的源码
  • 💬 在 GitHub Issues 提问
  • 🤝 参与社区讨论

🚀 准备好开始开发了吗?

从了解目录结构开始你的插件开发之旅~