起因
在没发布到线上时,如何只有本地环境下,开发一个 composer 包呢?
步骤
- 创建如下目录结构
# 项目的根路径下,创建如下目录结构
packages
└── huid
└── easy-tool
├── READEME.md
├── composer.json
└── src
├── Controllers
│ └── IndexController.php
├── EasyToolServiceProvider.php
├── Support
│ ├── Response.php
│ └── Util.php
├── config
│ └── config.php
└── resources
└── views
└── tpl.blade.php
- 你的包的 composer.json 内容如下
{
"name": "huid/easy-tool",
"description": "some easy tool",
"type": "library",
"authors": [
{
"name": "huid",
"email": "huid@gmail.com"
}
],
"require": {
"guzzlehttp/guzzle:^7.0"
},
"autoload": {
"psr-4": {
"Huid\\EasyTool\\": "src"
}
},
// 这段时 laravel 的包发现才需要
"extra": {
"laravel": {
"providers": [
"Huid\\EasyTool\\EasyToolServiceProvider"
]
}
}
}
- 根路径下更改 composer.json 文件
"repositories": [
{
"type": "path",
"url": "./packages/huid/easy-tool"
}
]
- 执行命令
composer require huid/easy-tool:@dev
- 效果
lrwxr-xr-x 1 huid staff 28 Jul 20 18:11 vendor/huid/easy-tool -> ../../packages/huid/easy-tool
使用
<?php
namespace Your-Namespace\Controllers;
use Huid\EasyTool\Support\Util;
Util::merge();
完结撒花🎉🎉🎉