用于覆盖文件的Symfony Bundle名称

时间:2016-05-23 11:54:55

标签: php fosuserbundle symfony

在Symfony(3.0.x)项目中扩展/覆盖Bundle时,会将相应的文件夹添加到" / app / Resources"夹。我明白了。 我没有得到的是你如何知道该文件夹应该具有的名称。

实施例: FOSUserBundle想要一个名为" FOSUserBundle"的文件夹。 捆绑包的位置是" / vendor / friendsofsymfony / user-bundle /"。

显然,这与app / Resources位置中的文件夹名称不同。

在哪里可以找到定义如何调用要添加的文件夹的包的名称或映射信息? 提前谢谢!

3 个答案:

答案 0 :(得分:3)

包名称是实际包类的短类名(没有名称空间的类名的最后一部分)(参见the code)。

一些例子..

CREATE TABLE #proj(Name varchar(50),Start_Planned date, 

Work_days_Required int)

insert into #proj
values('Project A','02.05.2016',6)

CReATE TABLE #Calendar(Day date,Weekday int,Workingday bit)

insert into #Calendar
values('01.05.2016',7,0),
('02.05.2016',1,1),
('03.05.2016',2,1),
('04.05.2016',3,0),
('05.05.2016',4,1),
('06.05.2016',5,1),
('07.05.2016',6,0),
('08.05.2016',7,0),
('09.05.2016',1,1),
('10.05.2016',2,1)


DECLARE @req_day int = 3
DECLARE @date date = '02.05.2016'

--SELECT @req_day = Work_days_Required FROM #proj where Start_Planned = @date

select *,row_number() over(order by [day] desc) as cnt
    from #Calendar
    where Workingday = 1
        and [Day] > @date

SELECT *
FROM
(
    select *,row_number() over(order by [day] desc) as cnt
    from #Calendar
    where Workingday = 1
        and [Day] > @date
)a
where cnt = @req_day

如果您查看用于向已注册的捆绑包添加捆绑包的类,您可以从中获取捆绑包名称。

所以,例如(摘自Sonata Block Bundle文档)..

FOS\UserBundle\FOSUserBundle                  -> FOSUserBundle
Sylius\Bundle\ReviewBundle\SyliusReviewBundle -> SyliusReviewBundle
Sonata\BlockBundle\SonataBlockBundle          -> SonataBlockBundle

将是public function registerBundles() { return array( // Dependency (check that you don't already have this line) new Knp\Bundle\MenuBundle\KnpMenuBundle(), // Vendor specifics bundles new Sonata\CoreBundle\SonataCoreBundle(), new Sonata\BlockBundle\SonataBlockBundle(), ); } KnpMenuBundleSonataCoreBundle

答案 1 :(得分:2)

此外,您只需执行控制台命令config:dump-reference即可列出可用的包名称。

3.x php bin/console config:dump-reference

~2.4 php app/console config:dump-reference

输出:

Available registered bundles with their extension alias if available:

+------------------------------+--------------------------+
| Bundle name                  | Extension alias          |
+------------------------------+--------------------------+
| AppBundle                    |                          |
| AsseticBundle                | assetic                  |
| DebugBundle                  | debug                    |
| DoctrineBundle               | doctrine                 |
| DoctrineMongoDBBundle        | doctrine_mongodb         |
| FrameworkBundle              | framework                |
| KnpMenuBundle                | knp_menu                 |
| KnpPaginatorBundle           | knp_paginator            |
| LiipImagineBundle            | liip_imagine             |
| MewesKTwigExcelBundle        | mewes_k_twig_excel       |
| MonologBundle                | monolog                  |
| SecurityBundle               | security                 |
| SensioDistributionBundle     | sensio_distribution      |
| SensioFrameworkExtraBundle   | sensio_framework_extra   |
| SensioGeneratorBundle        |                          |
| StofDoctrineExtensionsBundle | stof_doctrine_extensions |
| SwiftmailerBundle            | swiftmailer              |
| TwigBundle                   | twig                     |
| UserBundle                   |                          |
| VichUploaderBundle           | vich_uploader            |
| WebProfilerBundle            | web_profiler             |
+------------------------------+--------------------------+

答案 2 :(得分:0)

你可以在任何捆绑包的主php类中找到捆绑包名称,它被称为捆绑包,在本例中为/ vendor / friendofsymfony / user-bundle / FOSUserBundle