前提
ローカル環境(xampp)で、Symfony v2.8 を v3.4.49 にアップグレード後、PHP 8.2.10 で動かそうと検証している最中に出会ったエラーです。動作環境
Windows 10 ProXAMPP Version: 8.2.4
PHP 8.2.10
Symfony v3.4.49
エラー内容
キャッシュをクリアしようとすると、
php app/console cache:clear --env=dev
エラーになります。
[Semantical Error] The annotation "@Route" in method AppBundle\Controller\DefaultController::indexAction() was
never imported. Did you maybe forget to add a "use" statement for this annotation? in C:\xampp\htdocs\yourapp\src\AppBundle/Controller/ (which is being imported from "C:\xampp\htdocs\yourapp\app/config\routing.yml"). Make sure annotations are installed and enabled.
対応
Routeアノテーションがインポート出来ていないのでは?とエラーメッセージは言っていますが、確認すると次のようにインポートは出来ています。 旧の Sensio のものと、 新の Symfony のものの、どちらを有効化しても、上記エラーが出てしまいました。namespace AppBundle\Controller;
use AppBundle\Libs\Visitor;
use Symfony\Bundle\FrameworkBundle\Controller\Controller;
// use Sensio\Bundle\FrameworkExtraBundle\Configuration\Route; // 旧
use Symfony\Component\Routing\Annotation\Route; // 新
随分と調べて、下記の参考ページ内容を見つけ、
--no-warmup というオプションを付けるとキャッシュクリア成功しました。
php app/console cache:clear --env=dev --no-warmup
参考
Unable to clear the cache due to fatal error - github.com対応後
キャッシュクリアが出来ても、symfony はまだ動かない、、、上記を試す場合は、ローカル環境でもバックアップ等は取った後にお試し下さい。