[php-mq composer package](https://packagist.org/packages/ablegang/php-mq)
上面,我已经添加了一个包。
而接下来,我将演示将这个我们自己创建的包,放到 packagist.org 中,让它支持 composer 管理。
# composer.json
在根目录新建 composer.json 文件
```
{
"name": "ablegang/php-mq",
"description": "PHP 模拟消息队列包",
"keywords": [
"object",
"半醒的狐狸",
"php message queue",
"php 消息队列"
],
"license": "MIT",
"author": [
{
"name": "半醒的狐狸",
"email": "2252390865@qq.com",
"homepage": "http://www.vsonweb.com",
"role": "Master"
}
],
"require": {
"php": ">=7.0.0"
},
"minimum-stability": "dev",
"autoload": {
"psr-4": {
"Ablegang\\PhpMq\\": "src/"
}
}
}
```
注意,上面的 minimum-stability 和 autoload 很重要。
它将决定这个包对其他包的兼容性和自动加载能力。
# 调整目录结构
作为一个 composer 包,我们应该将包的主要代码存储到 src 目录下,而生产者和消费者属于测试代码,将它放到 tests 目录下。
调整后的结构如下:
```
php-mq
|--- src
|---|--- Driver
|---|---|--- QueueI.php
|---|---|--- Job.php
|---|---|--- MysqlDriver.php
|---|---|--- RedisDriver.php
|---|---|--- queue.sql
|---|--- Queue.php
|--- tests
|---|--- Producer.php
|---|--- Consumer.php
|---|--- RedisProducer.php
|---|--- RedisConsumer.php
|--- .gitignore
|--- composer.json
|--- README.md
```
其中, gitignore 文件主要负责将某一些文件排除在 git 监管之外。
*.gitignore*
```
/.idea
vendor
.composer.lock
```
# 提交 github
把项目提交到 github 上面,用 github 进行管理。
具体如何操作,网上有很多描述,这里就不详细介绍了。
# packagist submit
![](https://box.kancloud.cn/43b371b393319bfdd3fd46b5def1a1c2_1219x590.png)
# 使用
```
composer install "ablegang/php-mq"
```