1
我正在嘗試將Composer集成到僅支持5.2的服務器上運行的舊PHP應用程序。該應用程序與Zend框架1和學說1.書面進行相關集成,並試圖各色封裝的作曲家我得到的錯誤一旦運行該應用程序後:與Composer一起安裝的Doctrine 1無法正常工作
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_paths.php
文件中的作曲家目錄中只顯示:
return array(
$vendorDir . '/digital-canvas/zend-framework/library',
);
而且我發現沒有在原則1包composer.json
文件包括include-path
指令,它我假設會是怎樣修改該文件。我錯過了什麼嗎?這些軟件包是否稍微破碎,並且需要明確包含才能開始滾動?
將適當的目錄添加到以上的數組解決了這個問題。但我不想接觸生成的文件,我希望我錯過了一些微妙的問題,而不是需要實施解決方法或找出如何修復已發佈的軟件包。
謝謝,這聽起來很有希望。我想避免硬連接路徑,所以我會考慮連接到Composer或至少它的配置文件,但這不會太早。 –
這只是您composer.json的一個相對路徑,並不像它會改變,因爲它只是您的供應商目錄+包名,它們在時間和機器上都相當穩定。這真的不是很危險。 – Seldaek
我誤解了配置的去向(我以爲它在作曲家之外)。這個方向應該很好。 –