<?php
+use Symfony\Component\DependencyInjection\Argument\RewindableGenerator;
use Symfony\Component\DependencyInjection\ContainerInterface;
use Symfony\Component\DependencyInjection\Container;
use Symfony\Component\DependencyInjection\Exception\InvalidArgumentException;
use Symfony\Component\DependencyInjection\ParameterBag\FrozenParameterBag;
/**
- * ProjectServiceContainer.
- *
* This class has been auto-generated
* by the Symfony Dependency Injection Component.
+ *
+ * @final since Symfony 3.3
*/
-class ProjectServiceContainer extends Container
+class Symfony_DI_PhpDumper_Test_EnvParameters extends Container
{
private $parameters;
private $targetDirs = array();
- /**
- * Constructor.
- */
public function __construct()
{
+ $dir = __DIR__;
+ for ($i = 1; $i <= 5; ++$i) {
+ $this->targetDirs[$i] = $dir = \dirname($dir);
+ }
$this->parameters = $this->getDefaultParameters();
$this->services = array();
$this->methodMap = array(
+ 'bar' => 'getBarService',
'test' => 'getTestService',
);
$this->aliases = array();
}
- /**
- * {@inheritdoc}
- */
+ public function getRemovedIds()
+ {
+ return array(
+ 'Psr\\Container\\ContainerInterface' => true,
+ 'Symfony\\Component\\DependencyInjection\\ContainerInterface' => true,
+ );
+ }
+
public function compile()
{
- throw new LogicException('You cannot compile a dumped frozen container.');
+ throw new LogicException('You cannot compile a dumped container that was already compiled.');
+ }
+
+ public function isCompiled()
+ {
+ return true;
}
- /**
- * {@inheritdoc}
- */
public function isFrozen()
{
+ @trigger_error(sprintf('The %s() method is deprecated since Symfony 3.3 and will be removed in 4.0. Use the isCompiled() method instead.', __METHOD__), E_USER_DEPRECATED);
+
return true;
}
+ /**
+ * Gets the public 'bar' shared service.
+ *
+ * @return \Symfony\Component\DependencyInjection\Tests\Fixtures\Bar
+ */
+ protected function getBarService()
+ {
+ return $this->services['bar'] = new \Symfony\Component\DependencyInjection\Tests\Fixtures\Bar($this->getEnv('QUZ'));
+ }
+
/**
* Gets the public 'test' shared service.
*
{
$class = $this->getEnv('FOO');
- return $this->services['test'] = new $class($this->getEnv('Bar'), 'foo'.$this->getEnv('FOO').'baz');
+ return $this->services['test'] = new $class($this->getEnv('Bar'), 'foo'.$this->getEnv('string:FOO').'baz', $this->getEnv('int:Baz'));
}
- /**
- * {@inheritdoc}
- */
public function getParameter($name)
{
- $name = strtolower($name);
+ $name = (string) $name;
+ if (!(isset($this->parameters[$name]) || isset($this->loadedDynamicParameters[$name]) || array_key_exists($name, $this->parameters))) {
+ $name = $this->normalizeParameterName($name);
- if (!(isset($this->parameters[$name]) || array_key_exists($name, $this->parameters) || isset($this->loadedDynamicParameters[$name]))) {
- throw new InvalidArgumentException(sprintf('The parameter "%s" must be defined.', $name));
+ if (!(isset($this->parameters[$name]) || isset($this->loadedDynamicParameters[$name]) || array_key_exists($name, $this->parameters))) {
+ throw new InvalidArgumentException(sprintf('The parameter "%s" must be defined.', $name));
+ }
}
if (isset($this->loadedDynamicParameters[$name])) {
return $this->loadedDynamicParameters[$name] ? $this->dynamicParameters[$name] : $this->getDynamicParameter($name);
return $this->parameters[$name];
}
- /**
- * {@inheritdoc}
- */
public function hasParameter($name)
{
- $name = strtolower($name);
+ $name = (string) $name;
+ $name = $this->normalizeParameterName($name);
- return isset($this->parameters[$name]) || array_key_exists($name, $this->parameters) || isset($this->loadedDynamicParameters[$name]);
+ return isset($this->parameters[$name]) || isset($this->loadedDynamicParameters[$name]) || array_key_exists($name, $this->parameters);
}
- /**
- * {@inheritdoc}
- */
public function setParameter($name, $value)
{
throw new LogicException('Impossible to call set() on a frozen ParameterBag.');
}
- /**
- * {@inheritdoc}
- */
public function getParameterBag()
{
if (null === $this->parameterBag) {
private $loadedDynamicParameters = array(
'bar' => false,
+ 'baz' => false,
+ 'json' => false,
+ 'db_dsn' => false,
+ 'env(json_file)' => false,
);
private $dynamicParameters = array();
{
switch ($name) {
case 'bar': $value = $this->getEnv('FOO'); break;
+ case 'baz': $value = $this->getEnv('int:Baz'); break;
+ case 'json': $value = $this->getEnv('json:file:json_file'); break;
+ case 'db_dsn': $value = $this->getEnv('resolve:DB'); break;
+ case 'env(json_file)': $value = ($this->targetDirs[1].'/array.json'); break;
default: throw new InvalidArgumentException(sprintf('The dynamic parameter "%s" must be defined.', $name));
}
$this->loadedDynamicParameters[$name] = true;
return $this->dynamicParameters[$name] = $value;
}
+ private $normalizedParameterNames = array(
+ 'env(foo)' => 'env(FOO)',
+ 'env(db)' => 'env(DB)',
+ );
+
+ private function normalizeParameterName($name)
+ {
+ if (isset($this->normalizedParameterNames[$normalizedName = strtolower($name)]) || isset($this->parameters[$normalizedName]) || array_key_exists($normalizedName, $this->parameters)) {
+ $normalizedName = isset($this->normalizedParameterNames[$normalizedName]) ? $this->normalizedParameterNames[$normalizedName] : $normalizedName;
+ if ((string) $name !== $normalizedName) {
+ @trigger_error(sprintf('Parameter names will be made case sensitive in Symfony 4.0. Using "%s" instead of "%s" is deprecated since Symfony 3.4.', $name, $normalizedName), E_USER_DEPRECATED);
+ }
+ } else {
+ $normalizedName = $this->normalizedParameterNames[$normalizedName] = (string) $name;
+ }
+
+ return $normalizedName;
+ }
+
/**
* Gets the default parameters.
*
protected function getDefaultParameters()
{
return array(
- 'env(foo)' => 'foo',
+ 'project_dir' => '/foo/bar',
+ 'env(FOO)' => 'foo',
+ 'env(DB)' => 'sqlite://%project_dir%/var/data.db',
);
}
}