我处于以下情况:
我想在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"one_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