我正在使用Silex進行項目工作。在一個特定的文件中,我添加了一個use
語句讓自動加載器包含一個特定的php文件。稍後在文件中,我使用該類。開發服務器上的所有內容都很好,但是當我轉到生產時,我收到了一條Fatal error: Class not found
消息。編輯:現在兩臺服務器都使用PHP 5.4.4。僅在生產服務器上發現類錯誤
是否有可能導致此問題的任何安裝特定問題?我可以確認由composer生成的兩個名稱空間自動載入文件是相同的。
只是爲了完整性考慮,這裏是包括聲明:
use Instaphp;
這裏是在後面的代碼中使用的類:
$app['instaphp'] = $app->share(function() use ($app) {
if($app['tagframe.instagram_token'] === null) {
return Instaphp\Instaphp::Instance();
} else {
return Instaphp\Instaphp::Instance($app['tagframe.instagram_token']);
}
});
$app['instaphp.config'] = $app->share(function() use ($app) {
return Instaphp\Config::Instance();
});
這裏是確切的錯誤:
Fatal error: Class 'Instaphp\Config' not found in /var/www/silexsandbox/src/TagFrame/Silex/TagFrameServiceProvider.php on line 89
更新:我應該補充一點,我沒有遇到過這樣的錯誤在任何其他地方在相當l我正在研究的代碼庫,所以我知道它並不像所有命名空間都不起作用那麼簡單。
聽起來很平凡,但是您確定在生產服務器上安裝了供應商(或在最新更改之後更新)? – Maerlyn
您正在運行PHP-FPM嗎?也許啓用APC?你可以嘗試重新加載FPM工作人員嗎? – igorw