typisttech/imposter-plugin

一个Composer插件,可以将其自身命名空间内的所有Composer供应商包包裹起来。适用于WordPress插件。

资助包维护!
typist.tech/donation

安装次数: 194 107

依赖关系: 2

建议者: 8

安全: 0

星标: 145

关注者: 11

分支: 12

开放问题: 8

类型:composer-plugin


README

Imposter 插件

Packagist Packagist PHP from Packagist CircleCI license Twitter Follow @TangRufus Hire Typist Tech

一个Composer插件,可以将其自身命名空间内的所有Composer供应商包包裹起来。适用于WordPress插件。

Typist Tech 倾心打造

Imposter 插件 是一个开源项目,并且完全免费使用。

然而,维护和开发新功能所需的努力如果不得到适当的财务支持是无法持续的。如果您有能力,请考虑通过以下链接进行捐赠

GitHub via Sponsor Sponsor via PayPal More Sponsorship Information

将所有Composer供应商包包裹在您自己的命名空间内。适用于WordPress插件。Imposter 插件是 Imposter 的Composer插件封装器。

为什么?

由于WordPress中缺乏依赖管理,如果两个插件捆绑了同一包的冲突版本,就会引发难以复现的错误。对Composer供应商包进行猴子补丁、将它们包裹在您自己的命名空间内是避免此类冲突的一个不太理想的解决方案。

安装

应通过Composer进行安装,有关如何安装Composer的详细信息,请访问 https://getcomposer.org.cn/

首先,在您的 composer.json 中添加 Imposter 配置

"extra": {
    "imposter": {
        "namespace": "My\\App\\Vendor",
        "excludes": [
            "dummy/dummy-excluded"
        ]
    }
}

然后,通过Composer CLI进行安装

composer require typisttech/imposter-plugin

有关详细信息,请参阅 Imposter 读取说明

Typist Tech 准备构建您的下一个令人惊叹的WordPress网站。 雇佣我们!

用法

放松一下

一旦安装,此插件就会钩入 composer installcomposer updatecomposer dump-autoload,自动为您运行 imposter。此外,imposter 插件自动加载所有修改过的文件作为 classmap

当这些事件触发时,此插件

  1. 查找 /path/to/project/root/composer.json
  2. 找到 vendor-dir
  3. 找到所有 required packages,包括依赖项所需的那些
  4. 找到所有所需包的所有 autoload paths
  5. 将所有命名空间前缀设置为在您的 composer.json 中定义的 imposter-plugin 命名空间

有关更多信息,请参阅 imposter 的读取说明

已知问题

需要帮助。欢迎提交拉取请求。

  1. composer installcomposer update 时,Imposter 运行两次
  2. 特性没有被转换
  3. 不支持虚拟包

常见问题解答

我可以在哪里找到更多信息?

有关更多详细信息,请参阅 imposter 的读取说明

关于不挂钩Composer命令怎么办?

直接使用 imposter

如何分发被impostify的插件?

  1. 切换到您支持的最低PHP版本
  2. 安装依赖项
    • 使用以下命令安装 composer:$ composer install --no-dev --classmap-authoritative --prefer-dist
  3. 清理源代码,例如:删除测试文件
  4. 将源代码打包成压缩文件。提示:使用 $ composer archive
  5. 将压缩文件发送给其他人/提交到wp.org SVN。提示

如何通过composer安装伪造的插件?

伪造的插件应提交到wp.org svn。

使用伪造意味着您将放弃通过 packagist.org 或 VCS(即使在 composer.json 中有 type: wordpress-plugin)直接通过 composer 安装插件的能力。

composer require 伪造插件,请使用 wpackagist.org

整个伪造情况非常糟糕。我们能做什么?

在WordPress核心提供关于依赖管理解决方案的方案之前,请保持冷静并继续前进。

同时,查看这些工具 以使WordPress不那么糟糕 现代化WordPress开发

你有使用此 composer 插件的真实生活例子吗?

下面是

在这里添加您的自定义内容

支持哪些 composer 版本?

两者都是 v1 和 v2。

你会添加对旧 PHP 版本的支持吗?

绝不!此插件仅适用于 积极支持的 PHP 版本

不要在 已弃用 或仅提供 安全修复 的 PHP 版本上使用它。

这看起来很棒。我能在哪里找到更多类似的好东西

我可以在哪里给出5星评价?

谢谢!很高兴你喜欢它。让别人知道有人在用这个项目很重要。请考虑

测试

composer test
composer style:check

替代方案

以下是我在此找到的一些替代方案列表。然而,这些没有一个能满足我的要求。

如果你知道其他类似的项目,请随时编辑本节!

  • Mozart 由 Coen Jacobs 开发

    • 支持 PSR0 和 PSR4
    • 依赖包存储在不同的目录中
  • PHP Scoper

    • 将文件/目录中的所有 PHP 命名空间前缀化,以隔离 PHAR 包中的代码

反馈

请提供反馈! 我们希望使这个项目尽可能有用。请 提交一个问题 并指出你喜欢和不喜欢的地方,或者fork该项目并 发送拉取请求任何问题都不算小。

安全漏洞

如果你在这个项目中发现了安全漏洞,请发送邮件到 imposter-plugin@typist.tech。所有安全漏洞都将得到及时处理。

鸣谢

Imposter Plugin 是一个 Typist Tech 项目,由 Tang Rufus 维护,他是 雇佣 的自由职业开发者。

贡献者完整列表可在此找到 这里

许可证

Imposter Plugin 采用 MIT 许可证 发布。