是否可以在Composer中验证供应商文件夹的完整性?

时间:2019-11-25 13:48:22

标签: php composer-php

我刚刚继承了一个糟糕的作曲家项目。他们给我发送了一个带有vendor目录的zip文件,我怀疑以前的开发人员直接在供应商内部编辑了文件。

有没有一种方法可以“验证”供应商文件夹以确保其中的文件未被修改?

2 个答案:

答案 0 :(得分:2)

将项目复制到其他文件夹中,然后删除供应商目录。运行composer install并比较两个供应商文件。

答案 1 :(得分:1)

  1. 将旧的vendor的名称更改为其他名称。

  2. 再次执行composer install

  3. 运行diff来比较两个目录。

例如对于一个示例项目,我有意在vendor内部修改了一个文件。

$ mv vendor vendor_old
$ composer install

### install output...

$ diff -rq vendor vendor_old

Files vendor/autoload.php and vendor_old/autoload.php differ
Files vendor/composer/autoload_files.php and vendor_old/composer/autoload_files.php differ
Files vendor/composer/autoload_real.php and vendor_old/composer/autoload_real.php differ
Files vendor/composer/autoload_static.php and vendor_old/composer/autoload_static.php differ
Files vendor/symfony/console/Terminal.php and vendor_old/symfony/console/Terminal.php differ

您几乎可以忽略对autoload*文件的更改,但是通过此清单,您可以专注于报告差异的其他文件(并从中运行更详尽的diff)。

在此示例中,实际上仅修改了vendor/symfony/console/Terminal.php