【问题标题】:Symfony2 TitleCase in Bundle name produces namespacing errors and bundle configurationBundle 名称中的 Symfony2 TitleCase 产生命名空间错误和包配置
【发布时间】:2012-11-14 05:56:11
【问题描述】:

生成捆绑包时,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", ...

【问题讨论】:

    标签: symfony dependency-injection namespaces symfony-2.1


    【解决方案1】:

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

    【讨论】:

      【解决方案2】:

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

      <?php
      
      namespace Acme\TitleCaseBundle\DependencyInjection;
      
      // ...
      
      class AcmeTitleCaseExtension extends Extension
      {
          // ...
      
          public function getAlias()
          {
              return 'acme_titlecase';
          }
      }
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-08-11
        • 1970-01-01
        • 2011-08-21
        • 1970-01-01
        • 2014-03-03
        • 1970-01-01
        相关资源
        最近更新 更多