Example #1
0
 /**
  * @param string $base
  * @param string $label
  * @param array $properties
  * @throws PlinthException
  */
 public static function loadFromArray($base, $label, $properties)
 {
     if (!isset($properties['path'])) {
         throw new PlinthException('Please define the path for you component.');
     }
     if (!isset($properties['config']) && !isset($properties['routing'])) {
         throw new PlinthException('Please define at least a config or routing.');
     }
     $self = new self($base, $label, $properties['path']);
     if (isset($properties['config'])) {
         if (!file_exists(__APP_CONFIG_PATH . $properties['config'])) {
             throw new PlinthException('The config you defined does not exist.');
         }
         $self->setConfig($properties['config']);
     }
     if (isset($properties['routing'])) {
         if (!file_exists(__APP_CONFIG_PATH . $properties['routing'])) {
             throw new PlinthException('The routing you defined does not exist.');
         }
         $self->setRouting($properties['routing']);
     }
     if (isset($properties['configMergeDefault']) && $properties['configMergeDefault']) {
         $self->enableDefaultConfigMerge();
     }
     if (isset($properties['routingMergeDefault']) && $properties['routingMergeDefault']) {
         $self->enableDefaultRoutingMerge();
     }
     return $self;
 }