/** * Creates a new configuration file. * * @param string|null $path The path where the configuration file is stored * or `null` if this configuration is not stored * on the file system. * @param Config $baseConfig The configuration that the configuration will * inherit its values from. * * @throws InvalidArgumentException If the path is not a string or empty. */ public function __construct($path = null, Config $baseConfig = null) { Assert::nullOrString($path, 'The path to the configuration file should be a string or null. Got: %s'); Assert::nullOrNotEmpty($path, 'The path to the configuration file should not be empty.'); // Inherit from default configuration $this->config = new Config($baseConfig); $this->path = $path; }
/** * Creates a binding type descriptor. * * @param string $name The name of the type. * @param string|null $description A human-readable * description of the type. * @param BindingParameterDescriptor[] $parameters The parameters. * * @see BindingType */ public function __construct($name, $description = null, array $parameters = array()) { Assert::typeName($name); Assert::nullOrString($description, 'The description must be a string or null. Got: %s'); Assert::nullOrNotEmpty($description, 'The description must not be empty.'); Assert::allIsInstanceOf($parameters, __NAMESPACE__ . '\\BindingParameterDescriptor'); $this->name = $name; $this->description = $description; foreach ($parameters as $parameter) { $this->parameters[$parameter->getName()] = $parameter; } }
/** * Creates the parameter. * * @param string $name The parameter name. * @param int $flags A bitwise combination of the flag * constants in this class. * @param null $defaultValue The default value of the parameter. Must * only be set for optional parameters. * @param string|null $description A human-readable description. */ public function __construct($name, $flags = self::OPTIONAL, $defaultValue = null, $description = null) { Assert::parameterName($name); Assert::nullOrInteger($flags, 'The parameter "$flags" must be an integer or null. Got: %s'); Assert::nullOrParameterValue($defaultValue); Assert::nullOrString($description, 'The parameter description must be a string or null. Got: %s'); Assert::nullOrNotEmpty($description, 'The parameter description must not be empty.'); if ($flags & self::REQUIRED && null !== $defaultValue) { throw new RuntimeException('Required parameters cannot have default values.'); } $this->name = $name; $this->flags = (int) $flags; $this->defaultValue = $defaultValue; $this->description = $description; }