0x6d617474/isolate

此包已被弃用,不再维护。未建议替代包。

通过在项目内所有供应商代码的命名空间前缀来隔离composer依赖

安装: 248

依赖者: 0

建议者: 0

安全: 0

星标: 6

关注者: 1

分支: 0

开放问题: 0

类型:composer-plugin

1.0.0 2017-07-14 21:02 UTC

This package is not auto-updated.

Last update: 2018-02-10 22:45:43 UTC


README

本插件的作用

此插件将所有供应商命名空间前缀为所选值。这包括所有声明的命名空间、use语句、完全限定的引用以及大多数引用命名空间的字符串值。

所有供应商代码和composer自动加载映射都更新为引用前缀的命名空间。

此插件不做的事情

它不会触及您项目中的任何代码。它仅影响供应商目录中的代码,并且仅影响引用受影响命名空间的代码。如果您将此应用于现有项目,您必须自己更新代码中的所有引用。

我为什么要使用这个插件?

此插件允许您在同一运行时运行两个利用composer依赖的项目,而不用担心冲突的依赖。最常见的例子是在WordPress环境中,所有插件都在同一运行时执行,并且可能依赖于相同的composer依赖。每个使用此插件的项目的代码都不能与其他项目冲突,除非供应商代码没有使用命名空间(在这种情况下,选择很少……)。

使用方法

通过在项目中引入插件来安装此插件:composer require 0x6d617474/isolate

通过将以下内容添加到您的composer.json来配置插件

"config" : {
    "isolate": {
      "prefix": "Your\\Prefix\\Here\\",
      "blacklist": [],
      "autorun": false,
      "require-dev": false,
      "replacements" : {}
    }
}

唯一的必需值是prefix

配置插件后,运行隔离操作

composer isolate
composer dump

您的供应商代码现在已前缀!

请确保在isolate后执行dump,否则您的自动加载映射将不正确!

配置

prefix

这将是在所有供应商命名空间前添加的值。它应该是一个有效的命名空间,并且应该对您的项目是唯一的。我建议您不要使用您的主项目命名空间,或者至少在末尾添加\\Vendor

blacklist

这是一个您不希望前缀的包列表。匹配的包将不会扫描命名空间,但如果它包含来自其他非黑名单包的命名空间,则仍会重写代码。

autorun

将此值设置为true会在每次dump之前自动运行隔离过程。

require-dev

默认情况下,仅扫描require包的命名空间,而忽略require-dev包(如上所述,如果它们包含来自其他包的命名空间,则仍会重写代码)。

将此值设置为true会将require-dev包包含在扫描中,并且任何找到的命名空间都将被前缀。

replacements

这是一个手动修复供应商代码中未检测到和替换的内容的地方,或者应该替换但不应该替换的内容。

在解析和重写每个文件之后,如果在替换列表中存在条目,它将对文件执行字符串替换。

字符串替换应该是幂等的,否则在多次执行时会发生故障。

语法是

"replacements" : {
    "path/relative/to/vendor/root/file.php" : {
        "search" : "replace",
        "search" : "replace",
    },
    "path/relative/to/vendor/root/file.php" : {
            "search" : "replace",
            "search" : "replace",
        }
}