You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Symfony 4.4升级5.0执行cache:clear报类不存在故障排查

问题背景

在将项目从Symfony 4.4升级至5.0版本时遇到缓存错误,项目在Symfony 4.4版本下cache:clear命令可正常运行。

环境信息
  • 升级操作执行时PHP版本为7.2.5,升级前项目运行PHP版本为7.1
已执行操作
  • 升级前严格参照Symfony官方4.4升5.0大版本升级文档操作
  • 已修复所有代码中的废弃用法提示
  • 执行命令composer require --dev symfony/phpunit-bridge安装对应组件
  • 执行./bin/phpunit运行测试并修复了绝大多数兼容问题,仅剩余1条Composer依赖解析相关报错,栈追踪信息如下:
Stack trace:
    #0 [internal function]: array_merge(phpunit/phpunit: Array)
    #1 phar:///usr/local/bin/composer.phar/src/Composer/DependencyResolver/DefaultPolicy.php(84): call_user_func_array('array_merge', Array)
    #2 phar:///usr/local/bin/composer.phar/src/Composer/Command/ShowCommand.php(537): Composer\DependencyResolver\DefaultPolicy->selectPreferredPackages(Object(Composer\DependencyResolver\Pool), Array, Array)
当前报错现象

执行composer update "symfony/*"命令时,依赖更新流程全部正常,仅最后执行post-update-cmd钩子中的cache:clear脚本时报错,返回错误码1,完整报错日志如下:

Executing script cache:clear [KO]
 [KO]
Script cache:clear returned with error code 1
!!
!!   // Clearing the cache for the dev environment with debug
!!   // true
!!
!!
!!  In FileLoader.php line 173:
!!
!!    Class "1\AdminController" does not exist in 
 /Applications/MAMP/htdocs/MyApplication/config/routes/../../src/Controller/ (which is being imported from "/Applications/MAMP/htdocs/MyApplication/config/routes/annotations.yaml"). Make sure annotations are installed and enabled.
!!
!!
!!  In AnnotationDirectoryLoader.php line 62:
!!
!!    Class "1\AdminController" does not exist
!!
!!
!!  cache:clear [--no-warmup] [--no-optional-warmers] [-h|--help] [-q|--quiet] [-v|vv|vvv|--verbose] [-V|--version] [--ansi] [--no-ansi] [-n|--no-interaction] [-e|--env ENV] [--no-debug] [--] <command>
!!
!!
Script @auto-scripts was called via post-update-cmd
已排查信息
  • 项目中不存在路径为1/AdminController的文件,AdminController是src/Controller/Admin/目录下的首个控制器
  • 若修改annotations.yaml中的路由资源指向为/HomeController,会出现同类型报错,仅报错类名变为1\HomeController
  • 当前annotations.yaml配置内容如下:
controllers
  resource: ../../src/Controller/
  type: annotation

kernel:
  resource: ../../src/Kernel.php
  type: annotation
  • 执行composer self-update升级Composer版本后问题未解决
  • 项目composer.json完整配置如下:
"type": "project",
  "license": "proprietary",
  "require": {
    "php": "^7.2.5",
    "ext-ctype": "*",
    "ext-iconv": "*",
    "composer/package-versions-deprecated": "1.11.99.5",
    "doctrine/annotations": "^1.8",
    "doctrine/common": "^2",
    "doctrine/doctrine-bundle": "^2",
    "doctrine/doctrine-migrations-bundle": "^2",
    "doctrine/orm": "^2",
    "dompdf/dompdf": "^0.8.5",
    "phpdocumentor/reflection-docblock": "^4.3",
    "sensio/framework-extra-bundle": "^5.1",
    "symfony/apache-pack": "^1.0",
    "symfony/asset": "^5.0",
    "symfony/cache": "5.0.*",
    "symfony/config": "5.0.*",
    "symfony/console": "5.0.*",
    "symfony/dotenv": "^5.0",
    "symfony/error-handler": "^5.0",
    "symfony/event-dispatcher": "^5.0",
    "symfony/expression-language": "^5.0",
    "symfony/flex": "^1.3.1",
    "symfony/form": "^5.0",
    "symfony/framework-bundle": "^5.0",
    "symfony/http-client": "^5.0",
    "symfony/http-foundation": "^5.0",
    "symfony/http-kernel": "^5.0",
    "symfony/intl": "^5.0",
    "symfony/mailer": "^5.0",
    "symfony/monolog-bundle": "^3.1",
    "symfony/process": "^5.0",
    "symfony/property-access": "^5.0",
    "symfony/property-info": "^5.0",
    "symfony/security-bundle": "^5.0",
    "symfony/security-core": "^5.0",
    "symfony/security-guard": "^5.0",
    "symfony/security-http": "^5.0",
    "symfony/serializer": "^5.0",
    "symfony/translation": "^5.0",
    "symfony/twig-bundle": "^5.0",
    "symfony/validator": "^5.0",
    "symfony/web-link": "^5.0",
    "symfony/yaml": "^5.0",
    "twbs/bootstrap": "4.4.1",
    "twig/extra-bundle": "^2.12|^3.0",
    "twig/twig": "^2.12|^3.0"
  },
  "require-dev": {
    "doctrine/doctrine-fixtures-bundle": "^3.4.2",
    "fzaninotto/faker": "^1.9",
    "phpunit/phpunit": "^7.5",
    "symfony/browser-kit": "^5.0",
    "symfony/css-selector": "^5.0",
    "symfony/debug-bundle": "^5.0",
    "symfony/maker-bundle": "^1.14",
    "symfony/phpunit-bridge": "^6.1",
    "symfony/stopwatch": "^5.0",
    "symfony/web-profiler-bundle": "^5.0"
  },
  "config": {
    "preferred-install": {
      "*": "dist"
    },
    "platform": {
      "php": "7.2.5"
    },
    "sort-packages": true,
    "allow-plugins": {
      "ocramius/package-versions": true,
      "symfony/flex": true
    }
  },
  "autoload": {
    "psr-4": {
      "App\\": "src/"
    }
  },
  "autoload-dev": {
    "psr-4": {
      "App\\Tests\\": "tests/"
    }
  },
  "replace": {
    "paragonie/random_compat": "2.*",
    "symfony/polyfill-ctype": "*",
    "symfony/polyfill-iconv": "*",
    "symfony/polyfill-php71": "*",
    "symfony/polyfill-php70": "*",
    "symfony/polyfill-php56": "*"
  },
  "scripts": {
    "auto-scripts": {
      "cache:clear": "symfony-cmd",
      "assets:install %PUBLIC_DIR%": "symfony-cmd"
    },
    "post-install-cmd": [
      "@auto-scripts"
    ],
    "post-update-cmd": [
      "@auto-scripts"
    ]
  },
  "conflict": {
    "symfony/symfony": "*"
  },
  "extra": {
    "symfony": {
      "allow-contrib": false,
      "require": "5.0.*"
    }
  }
}

内容的提问来源于stack exchange,提问作者Bastien SCHRODER

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.30 03:51:23