Skip to content
CatchAdmin 插件市场也正式上线啦!!! GO ! 还有 CatchAdmin 正在参加 Gitee 2025 最受欢迎的开源软件投票活动 ⭐请给我投一票吧!

插件快速入门

🚀 本章帮助你快速了解 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

按提示输入完成后,看到以下信息说明初始化成功:

CatchAdmin 创建一个新插件包

插件目录结构

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

CatchAdmin 插件结构

初始化后的目录结构非常简洁:

├─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 文件。

下一步

恭喜你完成了第一个插件的创建!🎊

接下来,你可以继续学习 插件开发实战,了解如何开发一个完整的后台模块插件,包括:

💬 加入社区

如果你有兴趣为 CatchAdmin 插件生态做贡献,欢迎添加微信 catchadmin,我们将手把手指导你解决开发中遇到的问题。

微信二维码

添加好友时请备注 插件