Symfony 2 Bundle中的Main File有什么用?

时间:2018-10-08 09:55:03

标签: php symfony bundle

Symfony 2 Bundle中的主文件有什么用途?

以下是文件的默认路径:

Project-> src-> BundleName-> BundleName.php

例如:

Symfony_Project / src / AppBundle / AppBundle.php

上述文件的内容始终为空白:

<?php

namespace AppBundle;

use Symfony\Component\HttpKernel\Bundle\Bundle;

class AppBundle extends Bundle
{
}
  1. 此文件在symfony中有什么用途?
  2. 为什么我们可以使用此文件?
  3. 是否必须? /我们可以删除它吗?
  4. 为什么它是空的?

1 个答案:

答案 0 :(得分:1)

此文件可用于覆盖任何其他捆绑软件(您的应用程序捆绑软件/第三方捆绑软件)及其资源。您可以为给定的捆绑包设置父捆绑包。例如,您包含了FosUserBundle,并且您想要覆盖其某些操作/布局文件等。要实现此目的,请创建捆绑UserBundle.php。添加FosUserBundle作为其父对象,如下所示:

// src/UserBundle/UserBundle.php
namespace UserBundle;

use Symfony\Component\HttpKernel\Bundle\Bundle;

class UserBundle extends Bundle
{
    public function getParent()
    {
        return 'FOSUserBundle';
    }
}

替代控制器:

// src/UserBundle/Controller/RegistrationController.php
namespace UserBundle\Controller;

use FOS\UserBundle\Controller\RegistrationController as BaseController;

class RegistrationController extends BaseController
{
    public function registerAction()
    {
        $response = parent::registerAction();

        // ... do custom stuff
        return $response;
    }
}

然后在UserBundle目录结构中,您可以覆盖控制器/布局文件等。

有关更多信息,请参考以下链接:https://symfony.com/doc/2.8/bundles/inheritance.html