2012-11-26 28 views
0

当生成一个bundle时,TitleCase名称是否有效?例如与Acme\TitleCaseBundle的Symfony2将自动假设路线要与acme_title_case前缀,服务acme_title_case.example:Acme\TitleCaseBundle\DependencyInjection\Configuration,对于配置树的根节点发现用这种方法Symfony2 TitleCase in Bundle name产生命名空间错误和bundle配置

<?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", ... 

回答

0

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

<?php 

namespace Acme\TitleCaseBundle\DependencyInjection; 

// ... 

class AcmeTitleCaseExtension extends Extension 
{ 
    // ... 

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

这是一个有效的名称,但使每个单词开始你告诉symfony的,这是一个单独的单词大写字母,这样的首字母大写是Title Case,它应该被命名为TitlecaseBundle。