我正在尝试在Symfony 2中创建应用程序,以尽可能多地学习初学者。默认情况下创建的第一个AppBundle很容易。其次,我使用create:bundle"ResultBundle"创建,有点粗糙,起初我得到了"ClassNotFoundException",但经过一些设置后,它再次按预期工作。 带着不那么值得的信心,我试图创建第三个捆绑包"ClinicBundle",然后一切都分崩离析了。虽然我为新捆绑包创建了 routeting.yml,并在 AppKernel 中正确设置了它.php(链接直接转到新类 ClinicBundle.php),并正确设置 app/config/routing.yml(与以前的 ResultBundle 相同)并将捆绑包添加到 composer.json 自动加载中,与以前的捆绑包相同,但我不断得到这个 ClinicBundle 的"ClassNotFoundException",就像它无法加载到 AppKernel 中一样.php尽管当我指向该行中的链接时:
new ClinicBundleClinicBundle()
它顺利地进入正确的文件。我在网上找到的每个建议都已经完成并正确设置。一切都到位了,但"ClassNotFoundException"继续存在,它只是不起作用。我也尝试了clear:cache
但即使在那时也弹出了相同的错误。我检查了所有内容,一切都到位了。路由文件、路径、作曲家自动加载。应用内核... 最后,我遵循了一个论坛的一些不良建议,并运行了一些"生成自动加载文件"的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.
我不知道出了什么问题,因为捆绑包是在 AppKernel 中注册的,并且这个路由文件不为空,就像这样:
clinic_homepage:
path: /clinic
defaults: { _controller: ClinicBundle:Default:index }
app:
resource: '@ClinicBundle/Controller/'
type: annotation
与以前的 ResultBundle 结构相同,在所有这些发生之前都有效。此外,结果捆绑包也不再工作,如果我将其放在应用程序/配置中的 routeting.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"?谢谢!
只是没有type: annotation
clinic:
prefix: /some-prefix
resource: '@ClinicBundle/Resources/config/routing.yml'