我正在尝试将 Composer 集成到在仅支持 5.2 的服务器上运行的旧 PHP 应用程序中。该应用程序是使用 Zend Framework 1 和 Doctrine 1 编写的。在执行相关集成并尝试 composer 上可用的各种包后,我在运行应用程序时遇到错误:
PHP Warning: include(Doctrine.php): failed to open stream: No such file or directory in [...]/www/dispatcher.php on line 11
[Sun Oct 21 12:33:31 2012] [error] [client ::1] PHP Warning: include(): Failed opening 'Doctrine.php' for inclusion (include_path='[...]/application/library:[...]/vendor/digital-canvas/zend-framework/library:.:/usr/share/php5:/usr/share/php:[...]/app/application/../library:[...]/application/../ext') in [...]/www/dispatcher.php on line 11
显然,问题在于 include_path 没有被修改为包含 Doctrine 的位置。include_paths.php
Composer 目录中的文件只显示:
return array(
$vendorDir . '/digital-canvas/zend-framework/library',
);
而且我注意到composer.json
Doctrine 1 包中的所有文件都没有包含一个include-path
指令,我假设该指令将修改该文件。我错过了什么吗?这些包是否稍微损坏并需要明确的包含才能开始滚动?
将正确的目录添加到上面的数组中确实可以解决问题。但我不想接触生成的文件,我希望我遗漏的问题有一些微妙之处,而不是需要实施解决方法或弄清楚如何修复已发布的包。