我尝试在Symfony3中自动生成一个包,使用官方站点上的指令:https://symfony.com/doc/current/bundles.html,但失败了。
我在我的项目中创建了一个目录\src\TestBundle
,其中包含一个文件TestBundle.php
。我从Bundle扩展了类TestBundle
,并在类声明之前添加了use Symfony\Component\HttpKernel\Bundle\Bundle;
行。
我将我的新包名添加到AppKernel.php
中的bundle列表中。
最后,当我执行$ php bin/console generate:bundle --namespace=TestBundle
时,会得到以下错误:
PHP致命错误:未登录的Symfony\Component\Debug\Exception\ClassNotFoundException:试图从名称空间"TestBundle“加载类"TestBundle”。
知道为什么会这样吗?
发布于 2017-08-02 09:57:20
如果您启动此命令:
php bin/console generate:bundle --namespace=TestBundle
Symfony为您创建绑定,您不需要创建文件并将其添加到AppKernel文件中。
尝试删除所有关于TestBundle的文件和引用,在只启动命令之后,Symfony将为您创建并注册绑定。
相反,我需要手动创建thos文件,您需要创建目录\src\TestBundle
,并在其中创建TestBundle.php
文件。在您需要将它注册到您的AppKernel之后。在需要告诉composer加载该包之后,如果尚未完成,则在composer.json
中为composer.json
使用此配置
"autoload": {
"psr-4": {
"": "src/"
},
"classmap": [
"app/AppKernel.php",
"app/AppCache.php"
]
},
最后,在控制台内启动命令:
composer dump-autoload
https://stackoverflow.com/questions/45457477
复制相似问题