# 插件开发

# 添加新插件

  • 插件开发以MoChat 插件 (opens new window)的形式,来添加新功能(模块)。
  • 开发完成之后,可以通过composer require 组件名称来安装,hyperf会通过 ConfigProvider 机制来自动加载

# MoChat 插件创建器使用方式

# 先进入 api-server 目录
cd /www/wwwroot/mochat/api-server
# 比如要创建一个 maxincai/demo 的插件
# plugin/maxincai/demo
# plugin 表示插件目录
# maxincai 一般为开发者github账号/composer 作者名
# demo 为插件名称
# 执行命令根据提示一步步操作即可
composer create-project mochat/plugin-creater plugin/maxincai/demo

# 插件目录示例

# 执行成功后就会得到一下如下结构的插件
plugin/maxincai/demo/
|-- composer.json
|-- LICENSE
|-- phpunit.xml
|-- README.md
|-- src
|   |-- ConfigProvider.php
|   |-- Action-------------------------------------- 动作目录(控制器)
|   |-- Constants----------------------------------- 常量目录
|   |-- Contract------------------------------------ 服务接口契约目录
|   |-- Event--------------------------------------- 事件目录
|   |-- Job----------------------------------------- 异步任务目录
|   |-- Listener------------------------------------ 事件监听器目录
|   |-- Logic--------------------------------------- 业务逻辑目录
|   |-- Model--------------------------------------- 模型目录
|   |-- Queue--------------------------------------- 异步队列目录
|   |-- Service------------------------------------- 服务目录
|   `-- Task---------------------------------------- 定时任务目录
`-- tests
    |-- bootstrap.php
    `-- Cases

# 修改原应用

如果有修改 ./app下代码的需求,同样建议以插件(hyperf组件)的开发形式,通过AOP 面向切面编程 (opens new window)、契约+指定依赖配置来对原应用进行改造,hyperf底层会自动生成替换后的代理

# 发布

  • 如果您有意分享您的插件,您可以把您插件的git仓库发布到https://packagist.org/平台,其它同学可以直接通过composer来安装下载
  • 当然,您也可以直接将代码归档打包,上传到我们的插件市场,来免费(或以有偿的形式)发布到我们的平台