Php Symfony2 ParamConverter未与@Annotation关联(任何文件更改后必须清除缓存)
我有一个控制器,它对路由、方法、模板和参数转换器使用注释。Php Symfony2 ParamConverter未与@Annotation关联(任何文件更改后必须清除缓存),php,symfony,annotations,Php,Symfony,Annotations,我有一个控制器,它对路由、方法、模板和参数转换器使用注释。 如果在下一页加载时对文件进行任何更改(甚至是空白更改或注释),则会发生以下错误 Cannot import resource "/home/sites/MySite/src/Acme/Bundle/MyBundle/Controller/" from "/home/sites/MySite/app/config/routing.yml". FileLoaderLoadException: Cannot import resource
如果在下一页加载时对文件进行任何更改(甚至是空白更改或注释),则会发生以下错误
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中修复 现在,为了获得最新信息,只需将该库的要求更改为dev master
"require": {
...
"symfony/symfony": "2.2.*",
"sensio/framework-extra-bundle": "dev-master",
...
},
然后运行composer update你能给我们看一下你的控制器文件吗?当然,这里有一个要点,你用的是什么版本的Symfony?您正在使用eAccelerator吗?在将项目升级到Symfony 2.2后,我遇到了相同的问题。这似乎只发生在prod环境中,dev没有问题。它在清除缓存后工作,直到我在任何操作(不一定是我正在执行的操作)上使用ParamConverter点击另一个控制器。之后,任何带有ParamConverter的控制器中都没有动作。不使用eAccelerator,最新的稳定2.2.0。谢谢tetranz,很高兴知道不仅仅是我。伙计,你让我开心。Thankssensio/framework extra bundle v2.2.1包含修复程序,不再需要使用dev master,您只需使用2.2.*即可获得最新的标记版本。