无法在Sylius中加载自定义捆绑包?

时间:2015-04-14 22:26:09

标签: symfony sylius

我想在Sylius中创建自己的捆绑包。我在目录src中创建并命名为App

src
   Sylius
        .......
   App
       Bundle
           ShopBundle
                AppShopBundle.php

在这个文件中,我写得非常简单:

namespace App\Bundle\ShopBundle;

use Symfony\Component\HttpKernel\Bundle\Bundle;

class AppShopBundle extends Bundle
{
}

我在AppKernel.php中注册了这个包

$bundles = array(
    new App\Bundle\ShopBundle\AppShopBundle()
);

但是当我运行网站时,我有一个例外。我不明白这里的问题,任何人都可以帮助我吗?

  

AppKernel.php第28行中的ClassNotFoundException:
  尝试加载类" AppShopBundle"来自命名空间" App \ Bundle \ ShopBundle"。
  你忘记了"使用"声明为" App \ Bundle \ ShopBundle \ AppShopBundle"?

3 个答案:

答案 0 :(得分:3)

您应该编辑composer.json文件以自动加载新的包

"autoload": {
        "psr-0": { "": "src/" }
}

然后在终端

中运行composer dump-autoload

答案 1 :(得分:3)

Tuan的方法对我有用。在我的情况下,我的composer.json autoload等于:

"autoload": {
   "psr-0": { "Sylius\\": "src/", "App\\": "src/" }
},

然后你想在运行' composer dump-autoload'

之后清除缓存
php app/console cache:clear --env=dev

答案 2 :(得分:0)

虽然Tuan的回答可行,但它使用psr-0。添加psr-4支持的更新答案。

更改您的composer.json的自动加载配置以加载整个源目录,如下所示:

"autoload": {
    "psr-4": {
        "": "src/"
    }
}