私はSilexを使用しているプロジェクトに取り組んでいます。特定のファイルでは、use
ステートメントを追加して、オートローダーに特定のPHPファイルを含めるようにしました。ファイルの後半で、私はそのクラスを使用します。すべては開発サーバー上でうまくいきますが、プロダクションに移行するとFatal error: Class not found
というメッセージが表示されます。編集:両方のサーバは現在、PHP 5.4.4を使用しています。クラスはプロダクションサーバでのみエラーが見つかりません
この問題を引き起こしているインストールに関する特定の問題はありますか?私は、作曲家によって生成された両方の名前空間自動ロードファイルが同じであることを確認できます。
だけ徹底のために、ここに含まれる文は次のとおりです。ここで
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
更新:私は、このようなエラーは他の場所で経験していないことを追加する必要があります。私は作業しているので、すべての名前空間が動作しないほど単純ではないことが分かっています。
よく聞こえるかもしれませんが、プロダクションサーバーにベンダーをインストール(または最新の変更後に更新)してもよろしいですか? – Maerlyn
PHP-FPMを実行していますか?おそらくAPCが有効になっていますか?あなたはFPM労働者をリロードすることができますか? – igorw