我如何使用 PhpStorm 在 Symfony 项目中找到未使用的库?

How can I find unused libraries in a Symfony project with PhpStorm?

我尝试查找并删除项目中所有未使用的库。例如,我有一个文件夹 lib/,其中包含许多其他文件夹,这些文件夹是著名的库。我想知道如何识别未使用的库。

我问了同样的问题here但是我收到的唯一回复建议我一个一个地检查每个文件...

你能帮帮我吗?

我认为这是不可能的,因为某些库可能会延迟加载,具体取决于应用程序的某些内部状态。

因此,即使您能以某种方式找到所有 强类型引用 检查代码,您也无法确定库是否通过魔术方法加载,自定义 class 加载程序、动态生成的 includerequire 语句、eval 编辑代码等。

如果您的 非库代码 没有覆盖率超过 95% 的测试,从您的 lib 文件夹中删除任何内容都是非常危险的。您的代码可能看起来 运行 很好,但在某些极端情况下仍然会失败。

有一个开源项目可以帮助您做到这一点: https://github.com/composer-unused/composer-unused

安装

composer require composer-unused/composer-unused-plugin

用法

composer unused

如果你想在 phpstorm 中使用它,你可以查看他们的 composer 文档:https://www.jetbrains.com/help/phpstorm/using-the-composer-dependency-manager.html#create-and-run-composer-scripts