84eb66deaca9fa05f91a4b7bd5654c4eee2298f8
[yaffs-website] / vendor / symfony / dependency-injection / Tests / Fixtures / php / services26.php
1 <?php
2
3 use Symfony\Component\DependencyInjection\ContainerInterface;
4 use Symfony\Component\DependencyInjection\Container;
5 use Symfony\Component\DependencyInjection\Exception\InvalidArgumentException;
6 use Symfony\Component\DependencyInjection\Exception\LogicException;
7 use Symfony\Component\DependencyInjection\Exception\RuntimeException;
8 use Symfony\Component\DependencyInjection\ParameterBag\FrozenParameterBag;
9
10 /**
11  * ProjectServiceContainer.
12  *
13  * This class has been auto-generated
14  * by the Symfony Dependency Injection Component.
15  */
16 class ProjectServiceContainer extends Container
17 {
18     private $parameters;
19     private $targetDirs = array();
20
21     /**
22      * Constructor.
23      */
24     public function __construct()
25     {
26         $this->parameters = $this->getDefaultParameters();
27
28         $this->services = array();
29         $this->methodMap = array(
30             'test' => 'getTestService',
31         );
32
33         $this->aliases = array();
34     }
35
36     /**
37      * {@inheritdoc}
38      */
39     public function compile()
40     {
41         throw new LogicException('You cannot compile a dumped frozen container.');
42     }
43
44     /**
45      * {@inheritdoc}
46      */
47     public function isFrozen()
48     {
49         return true;
50     }
51
52     /**
53      * Gets the public 'test' shared service.
54      *
55      * @return object A %env(FOO)% instance
56      */
57     protected function getTestService()
58     {
59         $class = $this->getEnv('FOO');
60
61         return $this->services['test'] = new $class($this->getEnv('Bar'), 'foo'.$this->getEnv('FOO').'baz');
62     }
63
64     /**
65      * {@inheritdoc}
66      */
67     public function getParameter($name)
68     {
69         $name = strtolower($name);
70
71         if (!(isset($this->parameters[$name]) || array_key_exists($name, $this->parameters) || isset($this->loadedDynamicParameters[$name]))) {
72             throw new InvalidArgumentException(sprintf('The parameter "%s" must be defined.', $name));
73         }
74         if (isset($this->loadedDynamicParameters[$name])) {
75             return $this->loadedDynamicParameters[$name] ? $this->dynamicParameters[$name] : $this->getDynamicParameter($name);
76         }
77
78         return $this->parameters[$name];
79     }
80
81     /**
82      * {@inheritdoc}
83      */
84     public function hasParameter($name)
85     {
86         $name = strtolower($name);
87
88         return isset($this->parameters[$name]) || array_key_exists($name, $this->parameters) || isset($this->loadedDynamicParameters[$name]);
89     }
90
91     /**
92      * {@inheritdoc}
93      */
94     public function setParameter($name, $value)
95     {
96         throw new LogicException('Impossible to call set() on a frozen ParameterBag.');
97     }
98
99     /**
100      * {@inheritdoc}
101      */
102     public function getParameterBag()
103     {
104         if (null === $this->parameterBag) {
105             $parameters = $this->parameters;
106             foreach ($this->loadedDynamicParameters as $name => $loaded) {
107                 $parameters[$name] = $loaded ? $this->dynamicParameters[$name] : $this->getDynamicParameter($name);
108             }
109             $this->parameterBag = new FrozenParameterBag($parameters);
110         }
111
112         return $this->parameterBag;
113     }
114
115     private $loadedDynamicParameters = array(
116         'bar' => false,
117     );
118     private $dynamicParameters = array();
119
120     /**
121      * Computes a dynamic parameter.
122      *
123      * @param string The name of the dynamic parameter to load
124      *
125      * @return mixed The value of the dynamic parameter
126      *
127      * @throws InvalidArgumentException When the dynamic parameter does not exist
128      */
129     private function getDynamicParameter($name)
130     {
131         switch ($name) {
132             case 'bar': $value = $this->getEnv('FOO'); break;
133             default: throw new InvalidArgumentException(sprintf('The dynamic parameter "%s" must be defined.', $name));
134         }
135         $this->loadedDynamicParameters[$name] = true;
136
137         return $this->dynamicParameters[$name] = $value;
138     }
139
140     /**
141      * Gets the default parameters.
142      *
143      * @return array An array of the default parameters
144      */
145     protected function getDefaultParameters()
146     {
147         return array(
148             'env(foo)' => 'foo',
149         );
150     }
151 }