composer 的官方手册repositories相关内容里目前有提到private packagist satisartifactpath四种类型。

可以具体看看后两种:

artifact

​ 使用 zip 包的形式来管理,可能某些我想不到的特殊场景会用上。(窃以为这种类型的包管理很灵活,但可能会太依赖人工管理和维护)

path

​ 指定依赖本地的一个目录,可以是相对路径绝对路径

所以本地开发可以使用 path 这种 type。

具体使用如下:

composer.json

{
  "repositories": [
    {
      "type": "path",
      "url": "../../packages/my-package"
    }
  ],
  "require": {
    "my/package": "*"
  }
}

上面是官方的例子,再看个例子:

composer.json

{
  "repositories": [
    {
      "type": "path",
      "url": "my-packages/*/*"
    }
  ],
  "require": {
    "jinchun/packages-00": "*@dev",
    "jinchun/packages-01": "*@dev",
    "jinchun/packages-02": "*@dev"
  }
}

OK,composer update + 包名吧。

开发完成之后可以根据需要上传至 packagist.org 或者自己的 private packagist。

记得忽略掉 my-packages 目录(或者将该目录置于项目目录以外)。

开发composer 包的步骤此处不详说。懒癌重度患者。