icanhazstring/composer-unused

通过扫描您的代码来显示未使用的包

0.8.11 2023-11-30 14:35 UTC

README

composer-unused logo

composer-unused

一个Composer工具,通过扫描您的代码来显示未使用的Composer依赖。

Andreas Frömer贡献者 创建,标志由 Caneco 设计。

⚠️ 如果您想将此工具作为composer-plugin使用,请访问 composer-used-plugin

动机

在大型仓库中工作,您有时会失去对所需Composer包的跟踪。可能有如此多的包,以至于您无法确定它们是否真正被使用。

不幸的是,composer why 命令只能为您提供有关为什么某个包作为依赖项安装在其他包中的信息。

我们如何检查一个包提供的符号是否在我们代码中被使用呢?

composer unused 来拯救!

example

安装

⚠️ 此工具严重依赖于其依赖项的某些版本。强烈不建议本地安装此工具,因为它可能无法按预期工作或无法正确安装。我们强烈建议您下载.phar存档或使用PHIVE在本地安装。

PHAR (PHP存档) (推荐)

通过 phive 安装或从最新版本中获取最新的 composer-used.phar

phive install composer-unused
curl -OL https://github.com/composer-unused/composer-unused/releases/latest/download/composer-unused.phar

本地

您还可以将 composer-used 安装为本地 开发 依赖项

composer require --dev icanhazstring/composer-unused

用法

根据您的安装类型,命令可能会有所不同。

注意:在运行 composer-used 之前,必须通过 composer installcomposer update 安装包。

PHAR

可以在您的项目中直接运行 phar 存档

php composer-unused.phar

本地

如果您将 composer-used 作为本地依赖项安装,则可以使用提供的二进制文件运行它

vendor/bin/composer-unused

排除文件夹和包

有时您不希望扫描某个特定目录或在扫描时忽略Composer包。在这些情况下,您可以提供 --excludeDir--excludePackage 选项。这些选项可以接受多个值,如下所示

php composer-unused.phar --excludeDir=config --excludePackage=symfony/console
php composer-unused.phar \
    --excludeDir=bin \
    --excludeDir=config \
    --excludePackage=symfony/assets \
    --excludePackage=symfony/console

确保包的名称与您的 composer.json 中的一致

配置

您可以通过将 composer-used.php 放在项目 composer.json 旁边来配置 composer-used。此配置可以看起来像这样:composer-used.php

按名称忽略依赖项

要按名称忽略依赖项,请将以下行添加到您的配置中

$config->addNamedFilter(NamedFilter::fromString('dependency/name'));

按模式忽略依赖项

要按模式忽略依赖项,请将以下行添加到您的配置中

$config->addPatternFilter(PatternFilter::fromString('/dependency\/name/'));

您可以使用 PatternFilter 通过单个组织忽略多个依赖项,例如 /symfony\/.*/

要解析的附加文件

默认情况下,composer-used 使用 composer.json 自动加载指令来确定要查找要解析的文件的位置。有时依赖项没有正确设置其 composer.json,或者文件以其他方式加载。使用此方法,您可以为每个依赖项定义附加文件。

$config->setAdditionalFilesFor('dependency/name', [<list-of-file-paths>]);

更新日志

请查看CHANGELOG.md

贡献指南

请查看CONTRIBUTING.md

行为准则

请查看CODE_OF_CONDUCT.md

许可证

本软件包遵循MIT许可证