Ejemplo n.º 1
0
 /**
  * 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;
 }
Ejemplo n.º 2
0
 /**
  * {@inheritdoc}
  */
 public function fromJson($jsonData, array $options = array())
 {
     $path = isset($options['path']) ? $options['path'] : null;
     $baseConfig = isset($options['baseConfig']) ? $options['baseConfig'] : null;
     Assert::isInstanceOf($jsonData, 'stdClass');
     Assert::nullOrString($path, 'The "path" option should be null or a string. Got: %s');
     Assert::nullOrIsInstanceOf($baseConfig, 'Puli\\Manager\\Api\\Config\\Config', 'The "baseConfig" option should be null or an instance of %2$s. Got: %s');
     $moduleFile = new RootModuleFile(null, $path, $baseConfig);
     $this->addJsonToModuleFile($jsonData, $moduleFile);
     $this->addJsonToRootModuleFile($jsonData, $moduleFile);
     return $moduleFile;
 }
Ejemplo n.º 3
0
 /**
  * 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;
     }
 }
Ejemplo n.º 4
0
 /**
  * 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;
 }
Ejemplo n.º 5
0
 /**
  * {@inheritdoc}
  */
 public function fromJson($jsonData, array $options = array())
 {
     $path = isset($options['path']) ? $options['path'] : null;
     $baseConfig = isset($options['baseConfig']) ? $options['baseConfig'] : null;
     Assert::isInstanceOf($jsonData, 'stdClass');
     Assert::nullOrString($path, 'The "path" option should be null or a string. Got: %s');
     Assert::nullOrIsInstanceOf($baseConfig, 'Puli\\Manager\\Api\\Config\\Config', 'The "baseConfig" option should be null or an instance of %2$s. Got: %s');
     $configFile = new ConfigFile($path, $baseConfig);
     $config = $configFile->getConfig();
     $jsonData = $this->objectsToArrays($jsonData);
     foreach ($jsonData as $key => $value) {
         $config->set($key, $value);
     }
     return $configFile;
 }
Ejemplo n.º 6
0
 /**
  * {@inheritdoc}
  */
 public function hasBindingType($typeName, $packageName = null)
 {
     Assert::nullOrString($packageName, 'The package name must be a string or null. Got: %s');
     $this->assertPackagesLoaded();
     return $this->typeDescriptors->contains($typeName, $packageName);
 }
Ejemplo n.º 7
0
 /**
  * {@inheritdoc}
  */
 public function hasTypeDescriptor($typeName, $moduleName = null)
 {
     Assert::nullOrString($moduleName, 'The module name must be a string or null. Got: %s');
     $this->assertModulesLoaded();
     return $this->typeDescriptors->contains($typeName, $moduleName);
 }