8e525bd0abd66390ff23b9bf5b46a66c9b52d4b4
[GitHub/WoltLab/WCF.git] /
1 <?php
2 /**
3 * PHP-DI
4 *
5 * @link http://php-di.org/
6 * @copyright Matthieu Napoli (http://mnapoli.fr/)
7 * @license http://www.opensource.org/licenses/mit-license.php MIT (see the LICENSE file)
8 */
9
10 namespace DI\Definition\Helper;
11
12 use DI\Definition\EnvironmentVariableDefinition;
13
14 /**
15 * Helps defining how to create an instance of an environment variable definition.
16 *
17 * @author James Harris <james.harris@icecave.com.au>
18 */
19 class EnvironmentVariableDefinitionHelper implements DefinitionHelper
20 {
21 /**
22 * The name of the environment variable
23 * @var string
24 */
25 private $variableName;
26
27 /**
28 * Whether or not the environment variable definition is optional
29 *
30 * If true and the environment variable given by $variableName has not been
31 * defined, $defaultValue is used.
32 *
33 * @var boolean
34 */
35 private $isOptional;
36
37 /**
38 * The default value to use if the environment variable is optional and not provided
39 * @var mixed
40 */
41 private $defaultValue;
42
43 /**
44 * @param string $variableName The name of the environment variable
45 * @param boolean $isOptional Whether or not the environment variable definition is optional
46 * @param mixed $defaultValue The default value to use if the environment variable is optional and not provided
47 */
48 public function __construct($variableName, $isOptional, $defaultValue = null)
49 {
50 $this->variableName = $variableName;
51 $this->isOptional = $isOptional;
52 $this->defaultValue = $defaultValue;
53 }
54
55 /**
56 * @param string $entryName Container entry name
57 *
58 * @return EnvironmentVariableDefinition
59 */
60 public function getDefinition($entryName)
61 {
62 return new EnvironmentVariableDefinition($entryName, $this->variableName, $this->isOptional, $this->defaultValue);
63 }
64 }