glook/isolated-composer

用于重新命名空间composer包和源代码,以实现隔离

0.3.1 2021-01-26 16:44 UTC

This package is auto-updated.

Last update: 2024-09-27 00:35:47 UTC


README

该库基于Interfacelab/namespacer,为composer使用的包添加前缀,实现隔离。

isolated-composer执行同样的操作,但通过添加所需的命名空间来修改应用程序源代码。使用isolated-composer时,您需要运行./Vendor/bin/isolated-composer并带有参数(见下文),这将修补您的源代码和依赖项(例如,使用CI时)。

安装

您可以在全局范围内安装它,但我认为您最好将其作为项目的composer基础使用。

composer require glook/isolated-composer

用法

安装后

./vendor/bin/isolated-composer  [--composer COMPOSER] [--source SOURCE] [--package PACKAGE] [--namespace NAMESPACE] [--config CONFIG] [--vendor-dir vendor] <dest>

与docker的用法

您可以使用isolated-composer而不将其作为composer依赖项安装。只需使用此镜像glook/php-isolated-composer

docker run --rm -it -v ${PWD}:/app \
    docker.io/glook/php-isolated-composer:latest --source /app \
    --package sample-prefix \
    --namespace SampleApp\\Vendor\\ \
    --no-dev \
    --vendor-dir vendor \
    /app/output

参数

例如,您可能可以这样运行

./vendor/bin/namespacer --composer sample.composer.json --config sample.config.php --package mypackage --namespace MyNamespace\Vendor build/

在这个例子中,我们指向一个包含我们想要重新命名空间的包的composer.json文件和一个包含在重新命名空间过程中将应用更多手动修补程序的过滤器的配置文件。处理输出将放入build/文件夹。

过滤(在PHP-Scoper术语中为修补)

您可以在vendor/glook/isolated-composer/sample.config.phpvendor/glook/isolated-composer/patches.config.php中看到一些示例配置,它们将演示如何在命名空间过程中插入自己的代码以捕获特殊情况。

报告错误

如果您遇到问题,请创建一个工单,并附加您试图处理的composer.json文件以及问题的清晰描述。