我已尝试使用官方网站上的说明{... 3}}在Symfony3中自动生成捆绑包,但失败了。
我在项目中创建了一个目录\src\TestBundle
,其中包含一个文件TestBundle.php
。我从Bundle扩展了我的类TestBundle
并在类声明之前添加了use Symfony\Component\HttpKernel\Bundle\Bundle;
行。
我将新的包名称添加到AppKernel.php
中的包列表中。
最后,当我执行$ php bin/console generate:bundle --namespace=TestBundle
时,我收到此错误:PHP Fatal error: Uncaught Symfony\Component\Debug\Exception\ClassNotFoundException: Attempted to load class "TestBundle" from namespace "TestBundle".
为什么会发生这种情况?
答案 0 :(得分:2)
如果您启动此命令:
php bin/console generate:bundle --namespace=TestBundle
Symfony为您创建Bundle,您无需创建文件并将其添加到AppKernel文件中。
尝试删除所有文件和有关TestBundle的引用,并且在启动后只显示命令,Symfony将为您创建并注册Bundle。
相反,我想要创建手动thos文件,您需要创建目录\src\TestBundle
并在文件TestBundle.php
内。
需要将它注册到AppKernel后。
在您需要告诉编写者加载该包之后,如果尚未完成,请在autoload
内使用composer.json
的此配置
"autoload": {
"psr-4": {
"": "src/"
},
"classmap": [
"app/AppKernel.php",
"app/AppCache.php"
]
},
最后在你的控制台中启动命令:
composer dump-autoload