📁 插件系统:api 目录使用指南
在我们的插件架构中,api 目录是插件之间进行“对话”的桥梁。它负责定义并暴露插件的内部功能,以便其他插件可以轻松调用。
1. 核心定位 🔍
api 目录存放的是 内部函数调用接口。
- 用途:当你的插件需要提供一些功能(如发送邮件、校验权限、读取配置)给其他插件使用时,请将这些逻辑封装在
api目录下。 - 本质:它们是标准的 PHP 类和方法,直接通过代码调用。
2. 接口类型区分(划重点!) ⚠️
| 接口类型 | 访问方式 | 适用场景 | 是否属于 api 目录 |
|---|---|---|---|
| 函数调用接口 | 直接通过 PHP 类名/方法名调用 | 插件间的内部通信、逻辑共享 | ✅ 属于 |
| 网络调用接口 | 通过 HTTP 请求(如 axios, curl)访问 | 前端交互、外部系统对接 | ❌ 不属于 |
注意:api 目录下的代码不能通过 URL 直接访问。
3. 实际开发示例 ✉️
💡 场景 A:邮件插件 (plugin/email)
如果你开发了一个邮件插件,希望别人能调用它发邮件:
- 文件路径:
plugin/email/api/Email.php - 调用方式:
// 其他插件只需一行代码即可发信
\plugin\email\api\Email::make()->send($to, $subject, $content);💡 场景 B:配置管理 (plugin/xbCode)
系统内置的配置插件,提供了统一的读取接口:
- 文件路径:
plugin/xbCode/api/ConfigApi.php - 调用方式:
// 获取系统配置中的验证码状态
$state = \plugin\xbCode\api\ConfigApi::make('system')->get('captcha_state');4. 特殊文件:Install.php ⚙️
在每个插件的 api 目录下,你通常会看到一个 Install.php 文件。
- 它的身份:插件的“生命周期管理器”。
- 它的作用:由系统自动生成,用于处理插件的 安装、卸载、更新 等操作(例如:在安装时自动创建数据库表)。
- 注意:除非需要自定义安装逻辑,否则无需手动修改它。
5. 编写建议 📝
- 单例/工厂模式:建议提供
make()静态方法,方便链式调用。 - 命名规范:类名应清晰反映其功能,如
UserApi.php、LogApi.php。 - 简洁性:
api层应尽可能轻量,具体的业务逻辑建议实现在插件的app/service或app/model中。