[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

# 使用
```
composer install "ablegang/php-mq"
```