php - Symfony2 ParamConverter 不与 @Annotation 关联(任何文件更改后必须清除缓存)

标签 php symfony annotations

我有一个 Controller ,它使用路由、方法、模板和 ParamConverter 的注释。
如果我在下一页加载时对文件进行任何更改(甚至是空格更改或注释),则会发生以下错误

Cannot import resource "/home/sites/MySite/src/Acme/Bundle/MyBundle/Controller/" from "/home/sites/MySite/app/config/routing.yml".

FileLoaderLoadException: Cannot import resource "/home/sites/MySite/src/Acme/Bundle/MyBundle/Controller/" from "/home/sites/MySite/app/config/routing.yml"

AnnotationException: [Semantical Error] The class "Sensio\Bundle\FrameworkExtraBundle\Configuration\ParamConverter" is not annotated with @Annotation. Are you sure this class can be used as annotation? If so, then you need to add @Annotation to the _class_ doc comment of "Sensio\Bundle\FrameworkExtraBundle\Configuration\ParamConverter". If it is indeed no annotation, then you need to add @IgnoreAnnotation("ParamConverter") to the _class_ doc comment of method Acme\Bundle\MyBundle\Controller\DefaultController::viewAction().

如果我清除缓存,那么它会再次工作,但只有在我进行另一次更改之前,它才会再次发生。 看起来在读取配置的注释信息时遇到了问题,但我无法理解为什么它在实际上没有对任何注释进行更改时起作用/不起作用。

最佳答案

啊,这是一个已知错误,已在 FrameworkExtraBundle 中修复。

https://github.com/symfony/symfony/issues/7283

现在要获取最新版本,只需将该库的要求更改为 dev-master

"require": {
    ...
    "symfony/symfony": "2.2.*",
    "sensio/framework-extra-bundle": "dev-master",
   ...
},

并运行 Composer 更新

关于php - Symfony2 ParamConverter 不与 @Annotation 关联(任何文件更改后必须清除缓存),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15247170/

相关文章:

php - 如何从我的 URL 中删除 "/web"?

php - 将内容插入数据库时​​自动刷新 div 标签

php - 如何在不使用AnnotationRegistry的情况下自动加载自定义注释类?

javascript - 如何在谷歌闭包中注释哈希?

PHP/MySQL 搜索功能

php - 新行未按升序插入 - MYSQL

php - Web测试用例: Use crawler to test a string

php - 如何为特定 Controller 操作创建异常事件监听器,以使用其原始参数重定向到另一个操作?

angularjs - 哪个最好将 AngularJS 或 Twig 与 Symfony2 一起使用

java - 访问注释处理器中的常量字段