我正在尝试在Symfony 2中创建应用程序,尽可能多地学习,作为初学者。默认情况下创建的第一个AppBundle很简单。其次,我使用create:bundle" ResultBundle"创建,有点粗糙,我得到了#34; ClassNotFoundException"起初,但经过一些设置,它按预期再次工作。 由于没有那么值得信任,我试图创造第三捆" ClinicBundle"然后一切都崩溃了。虽然我为new bundle创建了routing.yml,并在AppKernel.php中正确设置(链接到新类ClinicBundle.php),并正确设置app / config / routing.yml(与之前的ResultBundle相同)并添加了捆绑到composer.json自动加载,与之前的捆绑包一样,我不断得到" ClassNotFoundException"对于这个ClinicBundle,虽然当我指向该行中的链接时,它无法加载到AppKernel.php中:
new ClinicBundle\ClinicBundle()
顺利发送到正确的文件。我在网上找到的每条建议都已经完成并且设置正确。一切都已到位但是#34; ClassNotFoundException"继续,它只是没有工作。我也试过了clear:cache
,但即便如此也出现了同样的错误。我检查了一切,一切都到位了。路由文件,路径,作曲家自动加载。 AppKernel ...
最后,我从论坛中听到了一些不好的建议并运行了一些dump-autoload
命令,该命令生成了自动加载文件"之后的一切都要糟糕得多。现在,我遇到很长的FileLoaderLoadException
错误很多行,主要是这一行:
Cannot load resource "@ClinicBundle/Resources/config/routing.yml". Make sure the "ClinicBundle/Resources/config/routing.yml" bundle is correctly registered and loaded in the application kernel class. If the bundle is registered, make sure the bundle path "@ClinicBundle/Resources/config/routing.yml" is not empty.
我不知道是什么问题,因为bundle已经在AppKernel中注册了,而且这个路由文件不是空的,它是这样的:
clinic_homepage:
path: /clinic
defaults: { _controller: ClinicBundle:Default:index }
app:
resource: '@ClinicBundle/Controller/'
type: annotation
与之前的ResultBundle相同的结构在所有这一切发生之前起作用。此外,ResultBundle也不再起作用,如果我将它放在app / config中的routing.yml文件之上,则会发生同样的错误但是对于ResultBundle。这就是app / config / rounting.yml文件的样子:
clinic:
resource: "@ClinicBundle/Resources/config/routing.yml"
type: annotation
result:
resource: "@ResultBundle/Resources/config/routing.yml"
type: annotation
app:
resource: '@AppBundle/Controller/'
type: annotation
发生什么事了?有谁知道这里缺少什么?如何添加新捆绑包以便它不报告" ClassNotFound"?谢谢!
答案 0 :(得分:3)
没有type: annotation
clinic:
prefix: /some-prefix
resource: '@ClinicBundle/Resources/config/routing.yml'