主题
插件快速入门
🚀 本章帮助你快速了解 CatchAdmin 插件系统,并在 5 分钟内创建你的第一个插件。
什么是 CatchAdmin 插件?
CatchAdmin 插件是一种基于 Composer 包管理机制的扩展系统,允许开发者以模块化的方式为 CatchAdmin 添加功能。
💡 好消息
CatchAdmin 并没有发明新的插件规范——只要你会开发 Composer 包,就已经会开发 CatchAdmin 插件了!
如果你还不熟悉 Composer 包开发,通过本教程学习 CatchAdmin 插件开发,也能同时掌握 Composer 包的开发技能,一举两得!
第一步:创建插件
使用 CatchAdmin 提供的初始化命令,可以快速创建一个标准的 Composer 包结构。
在项目根目录执行:
shell
php artisan catch:plugin-init命令会引导你输入以下信息:
| 输入项 | 说明 | 示例 |
|---|---|---|
| 插件标题 | 插件的显示名称(建议中文) | 测试插件 |
| 包名 | 符合 Composer 规范的包名 | test/test |
| 描述 | 插件功能说明 | 这是一个测试插件 |
| 版本号 | 语义化版本号(默认 1.0.0) | 1.0.0 |
| 作者名称 | 系统会自动提取 Git 配置 | JoJo <xxx@xxx.com> |
| PSR-4 命名空间 | 插件的根命名空间 | Test\Test |
按提示输入完成后,看到以下信息说明初始化成功:

插件目录结构
插件会在项目根目录的 packages 目录下生成,例如 packages/test/test:

初始化后的目录结构非常简洁:
├─test/
│ ├─src/ # 源代码目录
│ │ └─ ... # 你的业务代码
│ ├─hook.php # 插件生命周期钩子
│ ├─composer.json # Composer 配置文件
│ └─README.md # 说明文档📌 关于
hook.php的详细用法,请参考 生命周期钩子
📂 关于目录结构
这只是最基础的结构,后续可以根据需要添加 routes/、migrations/、config/ 等目录。详见 插件开发实战。
第二步:编写代码
在正式安装插件之前,让我们先添加一些代码来验证插件是否正常工作。
创建测试类
在 src 目录下创建 Hello.php 文件:
php
<?php
declare(strict_types=1);
namespace Test\Test;
class Hello
{
public function plugin()
{
return "hello catchadmin plugin!!! 😀";
}
}第三步:安装插件
配置 Composer 仓库
在项目根目录的 composer.json 中,添加 repositories 配置(如果已存在则跳过):
json
{
"repositories": [
{
"type": "path",
"url": "./packages/*/*"
},
{
"type": "path",
"url": "./packages/*"
}
]
}执行安装命令
shell
composer require test/test:* --ignore-platform-reqs看到以下输出说明安装成功:
./composer.json has been updated
Running composer update test/test
Loading composer repositories with package information
Updating dependencies
Lock file operations: 1 install, 0 updates, 0 removals
- Locking test/test (1.0.0)
Writing lock file
Installing dependencies from lock file (including require-dev)
Package operations: 1 install, 0 updates, 0 removals
- Installing test/test (1.0.0): Junctioning from ./packages/test/test
Generating optimized autoload files第四步:验证插件
现在让我们验证插件是否正常工作。
使用 Tinker 测试
打开终端,进入 Laravel Tinker:
shell
php artisan tinker在 Tinker 中执行:
php
(new Test\Test\Hello)->plugin()输出结果:

🎉 恭喜! 看到 hello catchadmin plugin!!! 😀 说明你的第一个插件已经成功运行了!
卸载插件
卸载插件与标准 Composer 操作完全一致:
shell
composer remove test/test --ignore-platform-reqs打包插件
如果你想将插件发布到 CatchAdmin 插件市场,需要先打包。
执行打包命令
shell
php artisan catch:plugin-pack按提示输入插件名称(如 test/test):

打包完成后,会在 packages/ 目录生成 testtest-1.0.0.zip 文件。
下一步
恭喜你完成了第一个插件的创建!🎊
接下来,你可以继续学习 插件开发实战,了解如何开发一个完整的后台模块插件,包括:
- 数据库迁移
- 模型与控制器
- 路由配置
- Vue 前端页面
- 生命周期钩子
💬 加入社区
如果你有兴趣为 CatchAdmin 插件生态做贡献,欢迎添加微信 catchadmin,我们将手把手指导你解决开发中遇到的问题。

添加好友时请备注 插件

