*/
public $requires = [];
+ /**
+ * @var array
+ * List of expected mixins.
+ * Ex: ['civix@2.0.0']
+ */
+ public $mixins = [];
+
/**
* @var array
* List of strings (tag-names).
*/
public $maintainer = NULL;
+ /**
+ * @var string|null
+ * The name of a class which handles the install/upgrade lifecycle.
+ * @see \CRM_Extension_Upgrader_Interface
+ */
+ public $upgrader = NULL;
+
/**
* Load extension info an XML file.
*
$this->type = (string) $info->attributes()->type;
$this->file = (string) $info->file;
$this->label = (string) $info->name;
+ $this->upgrader = (string) $info->upgrader;
// Convert first level variables to CRM_Core_Extension properties
// and deeper into arrays. An exception for URLS section, since
$this->tags[] = (string) $tag;
}
}
+ elseif ($attr === 'mixins') {
+ $this->mixins = [];
+ foreach ($val->mixin as $mixin) {
+ $this->mixins[] = (string) $mixin;
+ }
+ }
elseif ($attr === 'requires') {
$this->requires = $this->filterRequirements($val);
}