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
確かに、Doctrine の場所を含めるように include_path が変更されていないことが問題のようです。include_paths.php
Composer ディレクトリのファイルには、次のもののみが表示されます。
return array(
$vendorDir . '/digital-canvas/zend-framework/library',
);
composer.json
Doctrine 1 パッケージのどのファイルにinclude-path
も、そのファイルを変更するものと思われるディレクティブが含まれていないことに気付きました。何か不足していますか?これらのパッケージはわずかに壊れており、ボールを転がし始めるには明示的なインクルードが必要ですか?
上記の配列に適切なディレクトリを追加すると、問題が修正されます。しかし、生成されたファイルに触れる必要はありません。回避策を実装したり、公開されたパッケージを修復する方法を見つけたりする必要はなく、見逃している問題に微妙な点があることを願っています。