Symfony 2 加载自定义配置文件

2024-04-11

我想在 Bundle/Resources/config 中添加一个新的配置文件。我试过以下http://symfony.com/doc/current/cookbook/bundles/extension.html http://symfony.com/doc/current/cookbook/bundles/extension.html,但它没有按预期工作,我得到

没有扩展能够加载配置 “mailbroker_mail_details”

我的文件:

MailbrokerMailDetailsExtension.php

<?php

namespace Mailbroker\MailDetailsBundle\DependencyInjection;

use Symfony\Component\DependencyInjection\ContainerBuilder;
use Symfony\Component\Config\FileLocator;
use Symfony\Component\HttpKernel\DependencyInjection\Extension;
use Symfony\Component\DependencyInjection\Loader;

class MailbrokerMailDetailsExtension extends Extension
{
    /**
     * {@inheritDoc}
     */
    public function load(array $configs, ContainerBuilder $container)
    {
        $configuration = new Configuration();
        $config = $this->processConfiguration($configuration, $configs);

        $loader = new Loader\YamlFileLoader($container, new FileLocator(__DIR__.'/../Resources/config'));
        $loader->load('services.yml');
        $loader->load('canonisers.yml');
    }

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

配置.php

<?php

namespace Mailbroker\MailDetailsBundle\DependencyInjection;

use Symfony\Component\Config\Definition\Builder\TreeBuilder;
use Symfony\Component\Config\Definition\ConfigurationInterface;

class Configuration implements ConfigurationInterface
{
    /**
     * {@inheritDoc}
     */
    public function getConfigTreeBuilder()
    {
        $treeBuilder = new TreeBuilder();
        $rootNode = $treeBuilder->root('mailbroker_mail_details');

        $rootNode
            ->children()
                ->scalarNode('abc')->end()
            ->end()
        ;

        return $treeBuilder;
    }
}

canonisers.yml

mailbroker_mail_details:
    abc: 123

配置是正确的(当放置在 app/config/config.yml 中时,它会按应有的方式加载),canonisers.yml 已正确加载,但由于某种原因我无法使其协同工作。感谢您的帮助!


好吧,我还没有尝试过,但您应该能够使用 Yaml 扩展直接加载 canonisers.yml 文件并将其添加到配置中。不推荐(绕过应用程序缓存),但它可能有效:

use Symfony\Component\Yaml\Yaml;

class MailbrokerMailDetailsExtension extends Extension
{
    public function load(array $configs, ContainerBuilder $container)
    {
        $file = __DIR__.'/../Resources/config/canonisers.yml';
        $configs = array_merge($configs,Yaml::parse(file_get_contents($file));

        $configuration = new Configuration();
        $config = $this->processConfiguration($configuration, $configs);
        ....

完全未经测试。您可能需要添加到 app/config/config.yml

mailbroker_mail_details: ~

只是为了克服错误消息。没有把握。

让我知道它是否有效。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Symfony 2 加载自定义配置文件 的相关文章

  • 根据用户投票移动 div

    我是新来的 但我喜欢这个网站 我检查了其他类似的问题 但没有看到我要找的东西 我是一名音乐家 有一段时间我一直在做 每日之歌 每天写一首小歌 我想将歌曲发布为 div 在里面 li 在 div 中 我只想要一个简单的 mp3 播放器和一个
  • 如何隐藏实际的下载文件夹位置

    我想隐藏下载文件夹位置 以便用户下载文件时看不到该位置 我认为这可以使用 htaccess 文件来完成 但我该如何做到这一点 或者如何使用 PHP 来完成此操作 我在 PHP 中是这样做的
  • usort 不适用于 laravel 多维数组

    我有一个数组 Illuminate Support Collection Object items protected gt Array 0 gt stdClass Object id gt 79 name gt shelin status
  • XPath 直到下一个标签

    与之前在这里问过的其他人类似的问题 但由于我不知道如何应用这些建议 所以我需要一些帮助 我想找到一个 html 文档的节点 其结构如下 摘录 可能有所不同 h2 My title 1 h2 h3 Sub heading h3 p span
  • 从 WordPress 搜索结果页面获取类别名称

    在特定博客类别中进行搜索查询 重定向到 WP BLOG 主页面 后 我的搜索 URL 如下所示 online shop s category new posts category post type post 不幸的是 我无法在搜索结果页面
  • 静态类属性上的 isset

    class A public static foo 42 class A attribute foo var dump isset class attribute gives bool false 我如何检查这个类中是否存在这个静态属性 U
  • 我可以使用开发者密钥通过 Google Sheets API 无需 Oauth 向 Google Sheet 写入数据吗?

    我正在开发一个使用 Google Sheets API 读取和更新 Google 电子表格中的值的应用程序 我可以使用我的开发人员密钥进行读取 但是尝试写入会返回此错误 请求缺少所需的身份验证凭据 需要 OAuth 2 访问令牌 登录 co
  • PHP 矩阵的逆矩阵

    I saw 这个问题 https stackoverflow com questions 211160 python inverse of a matrix 并弹出这个想法 PHP 有没有一种有效的方法来做到这一点 EDIT 最好有演示 你
  • 如何应对本地化?我应该遵循一个标准吗?

    我正在尝试创建一组类来处理本地化 主要是货币部分 但也包括语言 我可以想象其中的逻辑 但我不知道不同的语言和货币使用什么名称 我看到有很多 ISO 标准 我应该选择哪一个 不管怎样 这是我想到的逻辑 以防你也能帮忙解决这个问题 我会有一个
  • 获取当前 URL/URI,不带某些 $_GET 变量

    在 Yii 中如何获取当前页面的 URL 例如 http www yoursite com your yii application lg pl id 15 但不包括 GET lg 无需手动解析字符串 我的意思是 我正在寻找类似的东西Yii
  • Azure 角色配置管理

    当您别无选择只能在 web config 或 app config 中保存配置设置时 我不明白 Windows Azure 如何让您改变应用程序的配置 例如 项目经常会使用大量使用 web config 的第三方库 web config 的
  • 解释一下 $CI =& get_instance();

    查看codeigniter的源代码 在它的辅助函数中我不断看到代码 CI get instance 谁能向我解释一下这段代码是如何工作的 我知道它正在返回对 CI 超级对象的引用 但是在哪里get instance 来自 这基本上是一个单例
  • 如何在PHP中使用curl GET发送原始数据?

    我正在开发 REST API 虽然很容易在 cURL 中为 POST 请求设置原始 JSON 数据 payload json encode array user gt data attach encoded JSON string to t
  • MagicSuggest动态ajax源码

    我在用着魔法建议 https github com nicolasbize magicsuggest对于自动完成输入文本 自动完成提要非常大 因此我无法完整下载它 在他们的示例中 他们提供了以下代码 脚本语言 document ready
  • 如何将 PHP 变量获取到 AJAX?

    我认为我没有在单独的 PHP 和 AJAX 文件之间以正确的方式传递变量 我正在通过触发第二个条件来调试它 status info 在我的 PHP 文件中 现在 status出现为 未定义 alert data status 注册进程 ph
  • Symfony 2 登录后重定向

    在 Symfony 2 中 您可以设置注销目标 以便注销后您将被重定向到 main 但是 登录后您将被重定向到 有没有办法为 成功 登录设置目标 firewalls dev pattern profiler wdt css images j
  • /etc/php5/conf.d 文件夹中的 .ini 文件有什么用?

    我知道 ini 文件位于 etc php5 cli与 PHP 的 CLI 使用有关 文件位于 etc php5 fpm是关于 PHP 的 FastCGI FPM 方面 但是位于以下位置的 ini 文件又如何呢 etc php5 conf d
  • 将数组值与同一数组中的其他值进行比较

    我想要实现的是 它将循环遍历数组 然后它会检查数组中的项目在三个点上是否相同 product id 尺寸值和颜色值 我想创建一个新数组 其中列出了项目 我唯一不想要的是重复的值 我希望重复的值如果在这三个点上相同 则数量将被计算在一起 就像
  • Codeigniter 中的 HTML 格式的电子邮件

    如何在 codeigniter 中发送格式化的电子邮件 我有这段代码 可以很好地发送电子邮件 但它没有按应有的方式格式化它 您可以看到显示收到电子邮件的图片 function email sender this gt load gt hel
  • PHP IMAP 解码消息

    我有通过 Base64 编码和 8 位编码发送的电子邮件 我想知道如何使用 imap fetchstruct 检查消息的编码 已经这样做了大约两个小时 所以丢失了 然后正确解码 Gmail 和 Mailbox iOS 上的应用程序 将其作为

随机推荐