ilab / namespacer
WordPress插件中重新命名空间composer包的工具。
Requires
- ext-json: *
- symfony/console: ^5.1
- symfony/finder: ^5.1
This package is auto-updated.
Last update: 2024-09-26 20:35:52 UTC
README
使用composer构建WordPress插件听起来是个好主意,但很快你会在加载与其他插件不兼容的库版本时遇到麻烦。我们的插件MediaCloud广泛使用包 - 超过65个不同的库 - 其中许多相当常见。我可以说,我们超过一半的支持请求是由于与其他用户安装的插件冲突,这些插件使用的是过时或较新的库版本。真正解决这个问题的方式就是重新命名我们使用的包,并且能够轻松安全地做到这一点。
Namespacer允许您通过为所有命名空间添加命名空间前缀以及为包名称添加前缀来重新命名您使用的任何composer包。然后它将生成一个名为"lib"的文件夹,您可以将它安全地包含在您的插件中。
是的,我知道一些项目,比如PHP-Scoper和Imposter等。我所有这些项目都遇到了问题,这就是我为什么要构建这个的原因。Yoast和其他插件高兴地使用了PHP-Scoper,但他们的插件,信不信由你,比MediaCloud小得多。例如,Yoast使用4个composer包。
安装
您可以全局安装,但我认为您最好通过composer将其用作项目的基础。
composer require ilab/namespacer
使用方法
安装后
./vendor/bin/renamespace [--composer COMPOSER] [--source SOURCE] [--package PACKAGE] [--namespace NAMESPACE] [--config CONFIG] <dest>
参数
例如,您可能可以这样运行它
./vendor/bin/namespacer --composer sample.composer.json --config patches.config.php --package mypackage --namespace MyNamespace\Vendor build/
在这个例子中,我们指向一个包含我们想要重新命名空间的包的composer.json文件和一个包含在重新命名空间过程中将应用更多手动补丁的过滤器的配置文件。处理输出的结果将放入build/文件夹中。
过滤(PHP-Scoper中的修补)
您可以在vendor/ilab/namespacer/sample.config.php和vendor/ilab/namespacer/patches.config.php中看到一些示例配置,它们将展示如何将您自己的代码插入命名空间过程以捕获特殊案例。
报告错误
如果您遇到问题,请创建一个工单并附加您试图处理的composer.json文件以及对该问题的清晰描述。