【问题标题】:symfony: logical operations inside config.yml?symfony:config.yml 中的逻辑操作?
【发布时间】:2015-03-17 21:49:50
【问题描述】:

是否可以在config.yml 文件中进行逻辑操作?

例如我试过这个:

width: 50
height: 30
width_more_height: %width% + %height%

但我得到一个错误..

【问题讨论】:

  • 如果这是 YAML 规范的一部分,我会感到惊讶,所以我想不会。
  • 在您的代码中添加?配置不应该有逻辑,你的代码应该使用配置来实现逻辑

标签: symfony yaml


【解决方案1】:

您不能按照您在 .yml 文件中编写的方式进行操作。但是有一种方法可以让这个想法发挥作用。您可以在 DependencyInjection 文件夹内的捆绑扩展文件中执行此操作。如果可以的话,将宽度和高度参数移动到捆绑中,也许制作一个 CoreBundle 或其他东西。

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

        $loader = new Loader\XmlFileLoader($container, new FileLocator(__DIR__.'/../Resources/config'));
        $loader->load('services.xml');

        $sum = $container->getParameter('width') + $container->getParameter('height');
        $container->setParameter('width_more_height', $sum);
    }
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-04-16
    • 2018-06-19
    相关资源
    最近更新 更多