dex/composer-plug-and-play

Composer 的即插即用包

安装数: 25,961

依赖者: 0

建议者: 0

安全性: 0

星标: 5

关注者: 3

分支: 2

开放问题: 0

类型:composer-plugin

0.22.0 2024-02-23 18:16 UTC

This package is auto-updated.

Last update: 2024-09-04 15:28:28 UTC


README

Tests Latest Release License

Composer(PHP 依赖管理器)添加到项目中,以实现无需在 composer.json 中安装新依赖即可插即用包的功能。

安装

Composer Plug and Play 需要 Composer 2.3.0 或更高版本。

composer require dex/composer-plug-and-play

全局安装

您可以将 Composer Plug and Play 全局安装,以便在所有本地项目中使用其功能。

composer global require dex/composer-plug-and-play

使用方法

初始化即插即用结构

composer plug-and-play:init

Composer 包创建或克隆到 packages/<vendor>/<package> 文件夹,并运行

composer plug-and-play

附加配置

您可以在 packages/composer.json 中添加一些附加配置,以在 composer.json 文件的最终解析中添加更多数据。

命令

所有命令都将使用 plug-and-play.jsonplug-and-play.lock 文件作为项目依赖的源,而不是使用原始的 composer.jsoncomposer.lock 文件。

您可以使用 composer ppcomposer pp:* 作为所有命令的别名。

  • plug-and-play:安装即插即用依赖和项目依赖。
  • plug-and-play:add:将包添加到 packages/composer.json
  • plug-and-play:dump:等同于 composer dump-autoload,但使用 plug-and-play 文件。
  • plug-and-play:init:初始化即插即用插件。
  • plug-and-play:install:等同于 composer install,但使用 plug-and-play 文件。
  • plug-and-play:reset:删除 plug-and-play 文件。
  • plug-and-play:run:等同于 composer run-script,但使用 plug-and-play 文件。
  • plug-and-play:update:等同于 composer update,但使用 plug-and-play 文件。

目录和文件

Composer Plug and Play 插件需要在项目根目录中创建一个 packages 文件夹,其中将包含即插即用结构。

plug-and-play.jsonplug-and-play.lock 文件将包含真实的项目依赖和即插即用依赖。

您的项目目录将如下所示

|- packages 
|  |- <vendor-name>
|  |  |- <plug-and-play-package>
|  |     |- composer.json
|  |     |- composer.lock
|  |- composer.json
|  |- plug-and-play.json
|  |- plug-and-play.lock
|
|- vendor
|  |- <vendor-name>
|     |- <require-package>
|        |- composer.json
|        |- composer.lock
|
|- composer.json
|- composer.lock

忽略已插包

有时您可能需要忽略一个正在开发中的包,为此,在 packages/composer.json 中添加类似以下内容并运行 composer plug-and-play

{
    "extra": {
        "composer-plug-and-play": {
            "ignore": [
                "dex/fake"
            ]
        }
    }
}

从已插包中要求开发依赖

在开发某些包或库时,您可能需要要求其开发依赖,为此,在 packages/composer.json 中添加类似以下内容并运行 composer plug-and-play,将安装 require-dev 依赖。

{
    "extra": {
        "composer-plug-and-play": {
            "require-dev": [
                "dex/fake"
            ]
        }
    }
}

自动加载(策略)

当在另一个应用或包内部开发包时,您可能会遇到与符号链接和递归有关的问题,为此,您可以使用 experimental:autoload 策略。

此策略将在 packages/vendor 目录中创建你的 composer.json 的简单副本,以便从原始的 vendor 目录进行符号链接。

要激活它,你应该更改你的 packages/composer.json

{
    "extra": {
        "composer-plug-and-play": {
            "autoload-dev": ["dex/fake"],
            "require-dev": ["dex/fake"],
            "strategy": "experimental:autoload"
        }
    }
}

你必须将你想要映射其自动加载的包添加到 autoload-dev 中,并将你想要要求其开发依赖的包添加到 require-dev 中。

许可证

Composer Plug and Play 在 MIT 许可证下授权。有关更多详细信息,请参阅 许可证文件