PHP: 开发本地 composer 包

154 阅读1分钟

起因

在没发布到线上时,如何只有本地环境下,开发一个 composer 包呢?

步骤

  1. 创建如下目录结构
# 项目的根路径下,创建如下目录结构
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

  1. 你的包的 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"
            ]
        }
    }
}

  1. 根路径下更改 composer.json 文件
"repositories": [
    {
        "type": "path",
        "url": "./packages/huid/easy-tool"
    }
]

  1. 执行命令
composer require huid/easy-tool:@dev
  1. 效果
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();

完结撒花🎉🎉🎉