【问题标题】:How to auto generate a bundle in Symfony3? [duplicate]如何在 Symfony3 中自动生成捆绑包? [复制]
【发布时间】:2018-01-09 11:32:21
【问题描述】:

我尝试在 Symfony3 中自动生成一个包,使用官方网站上的说明:https://symfony.com/doc/current/bundles.html,但失败了。

我在我的项目中创建了一个目录\src\TestBundle,其中包含一个文件TestBundle.php。我从 Bundle 扩展了我的类 TestBundle 并在类声明之前添加了 use Symfony\Component\HttpKernel\Bundle\Bundle; 行。

我将我的新捆绑包名称添加到 AppKernel.php 的捆绑包列表中。

最后,当我执行$ php bin/console generate:bundle --namespace=TestBundle 时,我得到了这个错误:

PHP 致命错误:未捕获 Symfony\Component\Debug\Exception\ClassNotFoundException:尝试从命名空间“TestBundle”加载类“TestBundle”。

你知道为什么会这样吗?

【问题讨论】:

    标签: php symfony bundle auto-generate


    【解决方案1】:

    如果你启动这个命令:

    php bin/console generate:bundle --namespace=TestBundle
    

    Symfony 为您创建 Bundle,您无需创建文件并将其添加到 AppKernel 文件中。

    尝试删除所有关于 TestBundle 的文件和引用,仅在启动该命令后,Symfony 将为您创建和注册 Bundle。

    相反,您想手动创建文件,您需要创建目录\src\TestBundle 和内部文件TestBundle.php。 在您需要将它注册到您的 AppKernel 之后。 在您需要告诉作曲家加载该捆绑包后,如果尚未完成,请在 composer.json 内为 autoload 使用此配置

    "autoload": {
        "psr-4": {
            "": "src/"
        },
        "classmap": [
            "app/AppKernel.php",
            "app/AppCache.php"
        ]
    },
    

    最后在控制台中启动命令:

    composer dump-autoload
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-05-11
      • 1970-01-01
      • 1970-01-01
      • 2013-05-03
      • 1970-01-01
      • 2021-10-19
      • 1970-01-01
      相关资源
      最近更新 更多