3 use Symfony\Component\DependencyInjection\Argument\RewindableGenerator;
4 use Symfony\Component\DependencyInjection\ContainerInterface;
5 use Symfony\Component\DependencyInjection\Container;
6 use Symfony\Component\DependencyInjection\Exception\InvalidArgumentException;
7 use Symfony\Component\DependencyInjection\Exception\LogicException;
8 use Symfony\Component\DependencyInjection\Exception\RuntimeException;
9 use Symfony\Component\DependencyInjection\ParameterBag\FrozenParameterBag;
12 * This class has been auto-generated
13 * by the Symfony Dependency Injection Component.
15 * @final since Symfony 3.3
17 class ProjectServiceContainer extends Container
20 private $targetDirs = array();
22 public function __construct()
24 $this->parameters = $this->getDefaultParameters();
26 $this->services = array();
27 $this->methodMap = array(
28 'service_from_anonymous_factory' => 'getServiceFromAnonymousFactoryService',
29 'service_with_method_call_and_factory' => 'getServiceWithMethodCallAndFactoryService',
32 $this->aliases = array();
35 public function getRemovedIds()
38 'Psr\\Container\\ContainerInterface' => true,
39 'Symfony\\Component\\DependencyInjection\\ContainerInterface' => true,
43 public function compile()
45 throw new LogicException('You cannot compile a dumped container that was already compiled.');
48 public function isCompiled()
53 public function isFrozen()
55 @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);
61 * Gets the public 'service_from_anonymous_factory' shared service.
63 * @return object A %env(FOO)% instance
65 protected function getServiceFromAnonymousFactoryService()
67 return $this->services['service_from_anonymous_factory'] = (new ${($_ = $this->getEnv('FOO')) && false ?: "_"}())->getInstance();
71 * Gets the public 'service_with_method_call_and_factory' shared service.
73 * @return \Bar\FooClass
75 protected function getServiceWithMethodCallAndFactoryService()
77 $this->services['service_with_method_call_and_factory'] = $instance = new \Bar\FooClass();
79 $instance->setBar(\Bar\FooClass::getInstance());
84 public function getParameter($name)
86 $name = (string) $name;
87 if (!(isset($this->parameters[$name]) || isset($this->loadedDynamicParameters[$name]) || array_key_exists($name, $this->parameters))) {
88 $name = $this->normalizeParameterName($name);
90 if (!(isset($this->parameters[$name]) || isset($this->loadedDynamicParameters[$name]) || array_key_exists($name, $this->parameters))) {
91 throw new InvalidArgumentException(sprintf('The parameter "%s" must be defined.', $name));
94 if (isset($this->loadedDynamicParameters[$name])) {
95 return $this->loadedDynamicParameters[$name] ? $this->dynamicParameters[$name] : $this->getDynamicParameter($name);
98 return $this->parameters[$name];
101 public function hasParameter($name)
103 $name = (string) $name;
104 $name = $this->normalizeParameterName($name);
106 return isset($this->parameters[$name]) || isset($this->loadedDynamicParameters[$name]) || array_key_exists($name, $this->parameters);
109 public function setParameter($name, $value)
111 throw new LogicException('Impossible to call set() on a frozen ParameterBag.');
114 public function getParameterBag()
116 if (null === $this->parameterBag) {
117 $parameters = $this->parameters;
118 foreach ($this->loadedDynamicParameters as $name => $loaded) {
119 $parameters[$name] = $loaded ? $this->dynamicParameters[$name] : $this->getDynamicParameter($name);
121 $this->parameterBag = new FrozenParameterBag($parameters);
124 return $this->parameterBag;
127 private $loadedDynamicParameters = array(
130 private $dynamicParameters = array();
133 * Computes a dynamic parameter.
135 * @param string The name of the dynamic parameter to load
137 * @return mixed The value of the dynamic parameter
139 * @throws InvalidArgumentException When the dynamic parameter does not exist
141 private function getDynamicParameter($name)
144 case 'foo': $value = $this->getEnv('FOO'); break;
145 default: throw new InvalidArgumentException(sprintf('The dynamic parameter "%s" must be defined.', $name));
147 $this->loadedDynamicParameters[$name] = true;
149 return $this->dynamicParameters[$name] = $value;
152 private $normalizedParameterNames = array(
153 'env(foo)' => 'env(FOO)',
156 private function normalizeParameterName($name)
158 if (isset($this->normalizedParameterNames[$normalizedName = strtolower($name)]) || isset($this->parameters[$normalizedName]) || array_key_exists($normalizedName, $this->parameters)) {
159 $normalizedName = isset($this->normalizedParameterNames[$normalizedName]) ? $this->normalizedParameterNames[$normalizedName] : $normalizedName;
160 if ((string) $name !== $normalizedName) {
161 @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);
164 $normalizedName = $this->normalizedParameterNames[$normalizedName] = (string) $name;
167 return $normalizedName;
171 * Gets the default parameters.
173 * @return array An array of the default parameters
175 protected function getDefaultParameters()
178 'env(FOO)' => 'Bar\\FaooClass',