【发布时间】:2018-01-22 08:35:12
【问题描述】:
作为初学者,我正在尝试在 Symfony 2 中创建应用程序,尽可能多地学习。默认创建的第一个 AppBundle 很简单。其次,我使用 create:bundle "ResultBundle" 创建,有点粗糙,起初我得到了 "ClassNotFoundException",但经过一些设置后,它又按预期工作了。 带着不那么当之无愧的信心,我尝试创建第三个捆绑包“ClinicBundle”,然后一切都崩溃了。虽然我为新包创建了 routing.yml,并在 AppKernel.php 中正确设置了它(链接直接指向新类 ClinicBundle.php),并正确设置了 app/config/routing.yml(与之前的 ResultBundle 相同)并添加了捆绑到 composer.json 自动加载,与之前的捆绑包相同,我不断收到此 ClinicBundle 的“ClassNotFoundException”,就像它无法在 AppKernel.php 中加载一样,尽管当我指向该行中的链接时:
new ClinicBundle\ClinicBundle()
它顺利进入正确的文件。我在网上找到的每条建议都已经完成并正确设置。一切都到位,但“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.
不知道哪里出了问题,因为bundle是在AppKernel中注册的,而且这个路由文件不是空的,是这样的:
clinic_homepage:
path: /clinic
defaults: { _controller: ClinicBundle:Default:index }
app:
resource: '@ClinicBundle/Controller/'
type: annotation
与之前的 ResultBundle 相同的结构,在这一切发生之前就可以工作。此外,如果我将 ResultBundle 放在 app/config 中的 routing.yml 文件之上,ResultBundle 也不再起作用,但会发生同样的错误,但对于 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”?谢谢!
【问题讨论】:
标签: php symfony routing composer-php classnotfoundexception