2

我碰巧遇到了创作中的所有 symfony 问题......

我想创建一个新项目。

我复制“ symfony2 ”文件夹,然后重命名:

 php app/console generate:bundle

它说:

  Generating the bundle code: OK
  Checking that the bundle is autoloaded: FAILED
  Confirm automatic update of your Kernel [yes]? 
  Enabling the bundle inside the Kernel: OK
  Confirm automatic update of the Routing [yes]? 
  Importing the bundle routing resource: FAILED

  The command was not able to configure everything automatically.  
  You must do the following changes manually.                      

  - Edit the composer.json file and register the bundle
  namespace in the "autoload" section:

  Bundle MddevPsavBundle is already imported.

为什么是这样?当我上次没有这个问题时,我做了同样的命令?

我该如何准确解决这个问题?我应该在该composer.json文件中添加什么?

我尝试了一些东西,但我得到了:

  Fatal error: Class 'Mddev\PsavBundle\MddevPsavBundle' not found in
  /var/www/projetQ/app/AppKernel.php on line 22
4

7 回答 7

10

如果您遇到问题:

The command was not able to configure everything automatically.  
You must do the following changes manually.

然后告诉你:

- Edit the composer.json file and register the bundle
namespace in the "autoload" section:

假设您已正确遵循捆绑名称约定,那么您将需要:


将新包添加到 composer.json 文件

"autoload": {
    "psr-0": {
        "currentbundle\\": "src/",
        "YOURNEWBUNDLE\\": "src/",            
    }
}

然后您需要再次在作曲家上运行安装

composer -n install --dev

然后,您应该自动加载两个捆绑包

于 2013-08-13T09:50:07.077 回答
2

似乎您的捆绑名称空间不遵循约定:http ://symfony.com/doc/current/cookbook/bundles/best_practices.html#bundle-name

你应该使用Mddev\Bundle\MddevPsavBundleorMddev\MddevPsavBundle作为一个包命名空间。

于 2012-11-04T21:46:33.737 回答
2

我刚刚遇到了这个确切的问题。app/console generate:bundle 未能通过自动加载检查,并且未创建 src 目录。我习惯于采用默认答案,以至于我没有注意到 src 目录指向缓存目录。

我输入了正确的路径,一切都很好。

我想熟悉确实会滋生蔑视。

于 2014-05-25T21:35:04.217 回答
0

我收到错误是因为在运行 generate:bundle 之前我没有安装 composer。

安装 Composer 后,再次尝试该命令(在删除捆绑创建的文件和 app/AppKernal.php 中的代码之后)它立即工作

于 2014-04-05T12:40:17.430 回答
0

从命令行生成捆绑包时,生成器不会考虑捆绑包所在的目录,这可能会在向捆绑包中添加供应商前缀时导致问题,您需要确保两件事才能正常工作

  1. 检查命名空间AppKernel.php>registerBundles()
  2. 检查包类中的命名空间
  3. 运行composer update只是为了确保正确创建自动加载器

例如:- namespace Acme\UserBundle;在 UserBundle.php

|-----|
|    src
|       |
|      Acme
|          |
|        UserBundle
|               .
|               .
|           UserBundle.php

里面AppKernel.phpnew Acme\UserBundle\UserBundle(),

于 2016-05-28T12:21:23.083 回答
0

要修复此错误,必须在composer.json此代码中添加:

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

始终所有捆绑包都在/src 此更改是我的解决方案Symfony 3.3.x

问候

于 2017-07-21T15:11:43.923 回答
0

在自动加载中更改 composer.json

"autoload": {
            "psr-4": {
                "Composer\\CaBundle\\": "src"
            }
        },

添加运行命令composer dumpautoload

于 2018-09-12T14:43:26.773 回答