Bundle名称中的Symfony2 TitleCase会生成命名空间错误和包配置

时间:2012-11-26 17:42:25

标签: symfony dependency-injection namespaces symfony-2.1

生成捆绑包时,TitleCase名称是否有效?例如,使用Acme\TitleCaseBundle Symfony2将自动假设路由以acme_title_case为前缀,服务为acme_title_case.example:,在Acme\TitleCaseBundle\DependencyInjection\Configuration中,将找到配置树的根节点方法

<?php
// ...

public function getConfigTreeBuilder()
{
    $treeBuilder = new TreeBuilder();
    $rootNode = $treeBuilder->root('acme_title_case');
    // ...
}

它应该是acme_titlecase

尝试更正这些内容,然后将acme_titlecase: ~添加到app/config/config.yml会引发此错误

InvalidArgumentException: There is no extension able to load the configuration for 
"acme_titlecase" (in /Users/me/Sites/MySite/app/config/config.yml).
Looked for namespace "acme_titlecase", 
found "framework", "another_namespace", ... , "acme_title_case", ...

2 个答案:

答案 0 :(得分:0)

这是一个有效的名称,但是每个单词都以大写字母开头,你告诉symfony这是一个单独的单词,所以TitleCase是Title Case,它应该被命名为TitlecaseBundle。

答案 1 :(得分:0)

感谢a post by Matthias Noback,解决方法是覆盖getAlias()方法并返回您喜欢的任何内容。

<?php

namespace Acme\TitleCaseBundle\DependencyInjection;

// ...

class AcmeTitleCaseExtension extends Extension
{
    // ...

    public function getAlias()
    {
        return 'acme_titlecase';
    }
}