【问题标题】:How to install or integrate bundles in Symfony2如何在 Symfony2 中安装或集成捆绑包
【发布时间】:2011-09-28 15:10:30
【问题描述】:

我已经下载了一个奏鸣曲管理包,并放在/var/www/Symfony/vendor/symfony/src/Symfony/Bundle中,并在AppKernel.php中输入了$bundles = array( ... new Symfony\Bundle\SonataAdminBundle\SonataAdminBundle(),),但抛出了一个错误

致命错误:类 'Symfony\Bundle\SonataAdminBundle\SonataAdminBundle' 未在 /var/www/Symfony/app/AppKernel.php 第 21 行调用堆栈:0.0001 326332 1. {main}() /var/www/Symfony/web/app_dev.php:0 0.0122 1121592 2. Symfony\Component\HttpKernel\Kernel->handle()

请帮助我,因为我是 symfony 2 的新手。作为一个整体,请提供一个链接或详细信息,例如如何安装/配置任何下载的包。 谢谢 拉维.M

【问题讨论】:

  • SonataAdminBundle 类在哪个命名空间中?
  • 您通常必须在app/autoload.php 中注册一个新的命名空间。你确定你这样做了吗?

标签: symfony


【解决方案1】:

您需要将捆绑包移动到

/var/www/Symfony/vendor/bundles

然后在AppKernel.php中添加

new Sonata\AdminBundle\SonataAdminBundle(),

在您的 $bundles 数组中。

在 autoload.php 中添加

'Sonata'           => __DIR__.'/../vendor/bundles',

$loader->registerNamespaces 数组

【讨论】:

    【解决方案2】:

    首先,SonataAdminBundle 位于 Sonata 命名空间中,而不是 Symfony。因此,您必须将app/AppKernel.php 中的实例化重写为:

    new Sonata\AdminBundle\SonataAdminBundle()
    

    您还必须在app/autoload.php 中注册命名空间:

    $loader->registerNamespaces(array(
    ...
    'Sonata' => __DIR__.'/path/to/parent/of/Sonata/folder'
    ...
    ));
    

    【讨论】:

      猜你喜欢
      • 2015-10-10
      • 1970-01-01
      • 2023-03-23
      • 1970-01-01
      • 1970-01-01
      • 2012-02-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多