抑制“;模糊类解析";composer转储自动加载警告-o


Suppress "Ambiguous class resolution" warning on composer dump-autoload -o

我处于以下情况:

我想在openshift上通过"git-push"部署一个php应用程序。依赖关系通过composer解析。composer.lock文件(将依赖项锁定到特定的所需版本)是存储库的一部分。

依赖项使用deploy挂钩脚本加载,使用:

${PHP_DIR}/bin/php $OPENSHIFT_DATA_DIR/composer.phar update --prefer-dist --no-dev -n
${PHP_DIR}/bin/php $OPENSHIFT_DATA_DIR/composer.phar dump-autoload --optimize -n

其中一个依赖项(htmlpurifier)是一个子依赖项的依赖项。在第二个命令(dump-autoload--optimize)中,一个抱怨"类解析不明确"的错误-警告被写入stderr(我想是这样),导致部署失败。代码使用单元/集成测试在本地进行测试,并被证明是有效的,即使使用这个错误的包也是如此。

remote:警告:类解析不明确,在"/var/lib"中都找到了"HTML5"/openshift/abc/app-root/runtime/repo/vender/ezyang/htmlpurifier/maintenance/PH5P.php"answers"/var/lib/openshift/abc/app-root/runtime/repo/vender/ezyang/htmlpurifier/library/htmlpurifier/Lexer/PH5P.php",将使用第一个。

他们是否可以忽略此特定于警告(例如,未记录的选项),而不忽略命令生成的所有其他警告和/或消息?或者,是否可以从自动加载优化中排除特定的子依赖项以避免警告,并在不忽略所有可能错误的情况下让部署成功?

经过对作曲家用户列表的讨论,中已经修复了这一问题

https://github.com/composer/composer/commit/05d9912f97a2decf6a5c08dfa569dcf23d79b16d

如果其他人遇到这种情况,请使用将composer更新到最新版本

composer selfupdate