resolve() 공개 메소드

Replaces parameter placeholders (%name%) by their values for all parameters.
public resolve ( )
 /**
  * {@inheritdoc}
  */
 public function resolve()
 {
     if ($this->resolved) {
         return;
     }
     parent::resolve();
     foreach ($this->envPlaceholders as $env => $placeholders) {
         if (!isset($this->parameters[$name = strtolower("env({$env})")])) {
             continue;
         }
         if (is_numeric($default = $this->parameters[$name])) {
             $this->parameters[$name] = (string) $default;
         } elseif (null !== $default && !is_scalar($default)) {
             throw new RuntimeException(sprintf('The default value of env parameter "%s" must be scalar or null, %s given.', $env, gettype($default)));
         }
     }
 }
예제 #2
0
 /**
  * @covers Symfony\Component\DependencyInjection\ParameterBag\ParameterBag::resolve
  */
 public function testResolveUnescapesValue()
 {
     $bag = new ParameterBag(array('foo' => array('bar' => array('ding' => 'I\'m a bar %%foo %%bar')), 'bar' => 'I\'m a %%foo%%'));
     $bag->resolve();
     $this->assertEquals('I\'m a %foo%', $bag->get('bar'), '->resolveValue() supports % escaping by doubling it');
     $this->assertEquals(array('bar' => array('ding' => 'I\'m a bar %foo %bar')), $bag->get('foo'), '->resolveValue() supports % escaping by doubling it');
 }
예제 #3
0
    /**
     * @covers Symfony\Component\DependencyInjection\ParameterBag\ParameterBag::resolve
     */
    public function testResolveIndicatesWhyAParameterIsNeeded()
    {
        $bag = new ParameterBag(array('foo' => '%bar%'));

        try {
            $bag->resolve();
        } catch (NonExistentParameterException $e) {
            $this->assertEquals('The parameter "foo" has a dependency on a non-existent parameter "bar".', $e->getMessage());
        }

        $bag = new ParameterBag(array('foo' => '%bar%'));

        try {
            $bag->resolve();
        } catch (NonExistentParameterException $e) {
            $this->assertEquals('The parameter "foo" has a dependency on a non-existent parameter "bar".', $e->getMessage());
        }
    }