AppBundle symfony 4

AppBundle symfony 4

我在使用 Symfony 4 时遇到问题,我想使用以下命令从现有数据库生成实体:

php bin/console doctrine:mapping:import --force AppBundle xml

但是出现错误:

Bundle "AppBundle" does not exist or it is not enabled. Maybe you forgot to add it in the registerBundles() method of your App\Kernel.php file?

我尝试在 registerBundles() 中导入文件 kernel.php :

new AppBundle/AppBundle();

但未定义 class 并且当我在 src/AppBundle/AppBundle.php 中创建它时:

<?php namespace AppBundle; use Symfony\Component\HttpKernel\Bundle\Bundle; class AppBundle extends Bundle { }

没有任何变化,当我重试命令时:

PHP Fatal error: Uncaught Symfony\Component\Debug\Exception\ClassNotFoundException: Attempted to load class "AppBundle" from namespace "App". Did you forget a "use" statement for another namespace? in /var/www/html/symfony/Mission3/src/Kernel.php:30

我想知道是否可以创建这样的包,或者它是否存在从现有数据库生成实体的其他命令。

在 symfony 4 中 'AppBundle' 不再存在。尝试使用 'App' 而不是 'AppBundle'

在 SF4 中,主要应用程序组件默认命名为 'App',并且不是捆绑包。 您必须在 src\ 目录下手动创建一个虚拟包才能使用与包相关的旧 doctrine:command。 查看如何手动创建捆绑包 here

之后,您可以 import/generate mappings/entities 使用 doctrine:command 并在 App 主模块 space 或那些包中使用它们。

SF4 maker 工具还没有提供包创建...但我想 SF4 开发人员认为这不是一个必须有的要求,因为他们希望我们专注于将大部分代码放在包中 less App main模块。