Beispiel #1
0
 /**
  * Register an extension.
  *
  * @param array $attributes
  * @return $this
  * @throws \Exception
  */
 public function register(array $attributes)
 {
     $validator = $this->getValidationFactory()->make($attributes, ['type' => 'required', 'name' => 'required', 'parameters.class' => 'required_if:type,widget', 'parameters.templates' => 'required_if:type,widget', 'parameters.template' => 'required_if:type,menu']);
     if ($validator->fails()) {
         throw new InvalidManifestException("Invalid manifest file detected!");
     }
     $extension = new Extension();
     $extension->type = $attributes['type'];
     $extension->name = $attributes['name'];
     if (isset($attributes['protected'])) {
         $extension->protected = $attributes['protected'];
     }
     if (isset($attributes['parameters'])) {
         $extension->parameters = $attributes['parameters'];
     }
     $extension->manifest = json_encode($attributes);
     $extension->save();
     return $this;
 }