wamp 環境を再インストールした後、app_dev.php を開いた後、このエラー メッセージが画面に表示されます。
致命的なエラー: 532 行目で C:...\app\cache\dev\classes.php のクラス SessionHandlerInterface を再宣言できません
何がうまくいかないのか誰にも手がかりがありますか?
キャッシュをクリアして解決しました:
app/console cache:clear
PHPバージョン5.4では、と呼ばれるインターフェースに基づく新しいセッション管理システムが導入されましたSessionHandlerInterface
。Symfony2コードは、グローバル名前空間でまったく同じ名前のクラスを宣言しているように見えるため、名前の衝突が発生します。
ドキュメントは次のとおりです:http ://www.php.net/manual/en/class.sessionhandlerinterface.php
SessionHandlerInterfaceは、カスタムセッションハンドラーを作成するためのプロトタイプを定義するインターフェイスです。OOP呼び出しを使用してカスタムセッションハンドラーをsession_set_save_handler()に渡すには、クラスがこのインターフェイスを実装する必要があります。
単純なキャッシュのクリアはうまくいきませんでした。以下のコマンドを使用して本番キャッシュをクリアする必要がありました。
php app/console cache:clear --env=prod --no-debug
以下のコマンドの 1 つ (またはすべて) を使用して、Symfony2 キャッシュをクリアしてみてください。
php app/console cache:clear --env=prod --no-debug (on production mode)
または
php app/console cache:clear --env=dev --no-debug (on development mode)
これだけが私のために働いたrm -rf app/cache/*
app_dev.php を使用している場合でも、キャッシュの問題が発生していました。ルートを変更しますが、ブラウザからアクセスしようとしても更新されません。
キャッシュが含まれているものはすべてコメントアウトしてみました(上記のとおり)。どれもうまくいきませんでした。
コンソールの cache:clear を実行すると問題は解決しますが、次のルーティング変更で再び機能しなくなります。保存するたびに cache:clear を実行する必要がありましたが、これはばかげていました。
私の問題は、SFTP を介してリモートで作業していたため、PHP Storm (私のエディター) が展開構成で「タイムスタンプを保持」していたことが判明しました。その構成を変更すると、問題はなくなりました。どうやら、開発環境であっても、ファイルのタイムスタンプを調べるキャッシングが行われているようです。