LoginSignup
0
0

symfony2.8 => 3.4 にアップグレード後、キャッシュクリアが出来ない

Last updated at Posted at 2023-11-15

前提

ローカル環境(xampp)で、Symfony v2.8 を v3.4.49 にアップグレード後、PHP 8.2.10 で動かそうと検証している最中に出会ったエラーです。

動作環境

Windows 10 Pro
XAMPP 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

image.png

参考

Unable to clear the cache due to fatal error - github.com

対応後

キャッシュクリアが出来ても、symfony はまだ動かない、、、
上記を試す場合は、ローカル環境でもバックアップ等は取った後にお試し下さい。

対応後の後

PHP8への対応が確実な symfony6台で新たにアプリを作成して、そこに 2.8 の機能を移しこむ、という方針に変更しました。
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0