当前位置: 首页>>代码示例>>PHP>>正文


PHP ContainerBuilder::resolveEnvPlaceholders方法代码示例

本文整理汇总了PHP中Symfony\Component\DependencyInjection\ContainerBuilder::resolveEnvPlaceholders方法的典型用法代码示例。如果您正苦于以下问题:PHP ContainerBuilder::resolveEnvPlaceholders方法的具体用法?PHP ContainerBuilder::resolveEnvPlaceholders怎么用?PHP ContainerBuilder::resolveEnvPlaceholders使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在Symfony\Component\DependencyInjection\ContainerBuilder的用法示例。


在下文中一共展示了ContainerBuilder::resolveEnvPlaceholders方法的4个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。

示例1: testResolveEnvValues

    public function testResolveEnvValues()
    {
        $_ENV['DUMMY_ENV_VAR'] = 'du%%y';

        $container = new ContainerBuilder();
        $container->setParameter('bar', '%% %env(DUMMY_ENV_VAR)%');

        $this->assertSame('%% du%%%%y', $container->resolveEnvPlaceholders('%bar%', true));

        unset($_ENV['DUMMY_ENV_VAR']);
    }
开发者ID:symfony,项目名称:symfony,代码行数:11,代码来源:ContainerBuilderTest.php

示例2: registerCacheConfiguration

 private function registerCacheConfiguration(array $config, ContainerBuilder $container)
 {
     $version = substr(str_replace('/', '-', base64_encode(hash('sha256', uniqid(mt_rand(), true), true))), 0, 22);
     $container->getDefinition('cache.annotations')->replaceArgument(2, $version);
     $container->getDefinition('cache.adapter.apcu')->replaceArgument(2, $version);
     $container->getDefinition('cache.adapter.system')->replaceArgument(2, $version);
     $container->getDefinition('cache.adapter.filesystem')->replaceArgument(2, $config['directory']);
     if (isset($config['prefix_seed'])) {
         $container->setParameter('cache.prefix.seed', $config['prefix_seed']);
     }
     if ($container->hasParameter('cache.prefix.seed')) {
         // Inline any env vars referenced in the parameter
         $container->setParameter('cache.prefix.seed', $container->resolveEnvPlaceholders($container->getParameter('cache.prefix.seed'), true));
     }
     foreach (array('doctrine', 'psr6', 'redis') as $name) {
         if (isset($config[$name = 'default_' . $name . '_provider'])) {
             $container->setAlias('cache.' . $name, new Alias(Compiler\CachePoolPass::getServiceProvider($container, $config[$name]), false));
         }
     }
     foreach (array('app', 'system') as $name) {
         $config['pools']['cache.' . $name] = array('adapter' => $config[$name], 'public' => true);
     }
     foreach ($config['pools'] as $name => $pool) {
         $definition = new ChildDefinition($pool['adapter']);
         $definition->setPublic($pool['public']);
         unset($pool['adapter'], $pool['public']);
         $definition->addTag('cache.pool', $pool);
         $container->setDefinition($name, $definition);
     }
     if (method_exists(PropertyAccessor::class, 'createCache')) {
         $propertyAccessDefinition = $container->register('cache.property_access', AdapterInterface::class);
         $propertyAccessDefinition->setPublic(false);
         $propertyAccessDefinition->setFactory(array(PropertyAccessor::class, 'createCache'));
         $propertyAccessDefinition->setArguments(array(null, null, $version, new Reference('logger', ContainerInterface::IGNORE_ON_INVALID_REFERENCE)));
         $propertyAccessDefinition->addTag('cache.pool', array('clearer' => 'cache.default_clearer'));
         $propertyAccessDefinition->addTag('monolog.logger', array('channel' => 'cache'));
     }
     $this->addClassesToCompile(array('Symfony\\Component\\Cache\\Adapter\\ApcuAdapter', 'Symfony\\Component\\Cache\\Adapter\\FilesystemAdapter', 'Symfony\\Component\\Cache\\CacheItem'));
 }
开发者ID:symfony,项目名称:symfony,代码行数:39,代码来源:FrameworkExtension.php

示例3: testMerge

 public function testMerge()
 {
     $container = new ContainerBuilder(new ParameterBag(array('bar' => 'foo')));
     $container->setResourceTracking(false);
     $config = new ContainerBuilder(new ParameterBag(array('foo' => 'bar')));
     $container->merge($config);
     $this->assertEquals(array('bar' => 'foo', 'foo' => 'bar'), $container->getParameterBag()->all(), '->merge() merges current parameters with the loaded ones');
     $container = new ContainerBuilder(new ParameterBag(array('bar' => 'foo')));
     $container->setResourceTracking(false);
     $config = new ContainerBuilder(new ParameterBag(array('foo' => '%bar%')));
     $container->merge($config);
     $container->compile();
     $this->assertEquals(array('bar' => 'foo', 'foo' => 'foo'), $container->getParameterBag()->all(), '->merge() evaluates the values of the parameters towards already defined ones');
     $container = new ContainerBuilder(new ParameterBag(array('bar' => 'foo')));
     $container->setResourceTracking(false);
     $config = new ContainerBuilder(new ParameterBag(array('foo' => '%bar%', 'baz' => '%foo%')));
     $container->merge($config);
     $container->compile();
     $this->assertEquals(array('bar' => 'foo', 'foo' => 'foo', 'baz' => 'foo'), $container->getParameterBag()->all(), '->merge() evaluates the values of the parameters towards already defined ones');
     $container = new ContainerBuilder();
     $container->setResourceTracking(false);
     $container->register('foo', 'Bar\\FooClass');
     $container->register('bar', 'BarClass');
     $config = new ContainerBuilder();
     $config->setDefinition('baz', new Definition('BazClass'));
     $config->setAlias('alias_for_foo', 'foo');
     $container->merge($config);
     $this->assertEquals(array('foo', 'bar', 'baz'), array_keys($container->getDefinitions()), '->merge() merges definitions already defined ones');
     $aliases = $container->getAliases();
     $this->assertTrue(isset($aliases['alias_for_foo']));
     $this->assertEquals('foo', (string) $aliases['alias_for_foo']);
     $container = new ContainerBuilder();
     $container->setResourceTracking(false);
     $container->register('foo', 'Bar\\FooClass');
     $config->setDefinition('foo', new Definition('BazClass'));
     $container->merge($config);
     $this->assertEquals('BazClass', $container->getDefinition('foo')->getClass(), '->merge() overrides already defined services');
     $container = new ContainerBuilder();
     $bag = new EnvPlaceholderParameterBag();
     $bag->get('env(Foo)');
     $config = new ContainerBuilder($bag);
     $config->resolveEnvPlaceholders($bag->get('env(Bar)'));
     $container->merge($config);
     $this->assertEquals(array('Foo' => 0, 'Bar' => 1), $container->getEnvCounters());
 }
开发者ID:kmiladi,项目名称:symfony,代码行数:45,代码来源:ContainerBuilderTest.php

示例4: getServiceProvider

 /**
  * @internal
  */
 public static function getServiceProvider(ContainerBuilder $container, $name)
 {
     $container->resolveEnvPlaceholders($name, null, $usedEnvs);
     if (0 === strpos($name, 'redis://') || $usedEnvs) {
         $dsn = $name;
         if (!$container->hasDefinition($name = md5($dsn))) {
             $definition = new Definition(\Redis::class);
             $definition->setPublic(false);
             $definition->setFactory(array(RedisAdapter::class, 'createConnection'));
             $definition->setArguments(array($dsn));
             $container->setDefinition($name, $definition);
         }
     }
     return $name;
 }
开发者ID:symfony,项目名称:symfony,代码行数:18,代码来源:CachePoolPass.php


注:本文中的Symfony\Component\DependencyInjection\ContainerBuilder::resolveEnvPlaceholders方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。