我想在openshift上通过“git push”部署一个PHP-app.依赖关系通过composer解决. composer.lock文件(将依赖项锁定到特定的所需版本)是存储库的一部分.
使用部署钩子脚本加载依赖关系:
${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: Warning: Ambiguous class resolution,“HTML5” was found in both “/var/lib
/openshift/abc/app-root/runtime/repo/vendor/ezyang/htmlpuri
fier/maintenance/PH5P.PHP” and “/var/lib/openshift/abc/app-
root/runtime/repo/vendor/ezyang/htmlpurifier/library/HTMLPurifier/Lexer/PH5P.PHP
“,the first will be used.
他们是否可以忽略此特定警告(例如未记录的选项),而不忽略该命令生成的所有其他警告和/或消息?或者是否可以从自动加载优化中排除特定的子依赖关系以避免警告并让部署成功而不忽略所有可能的错误?
https://github.com/composer/composer/commit/05d9912f97a2decf6a5c08dfa569dcf23d79b16d
如果其他人遇到此问题,请使用将更新的编辑器更新到最新版本
composer selfupdate