/** * @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; }