2 namespace Civi\Test\CiviEnvBuilder
;
3 class ExtensionsStep
implements StepInterface
{
8 * ExtensionStep constructor.
9 * @param string $action
10 * Ex: 'install', 'uninstall'.
11 * @param string|array $names
13 public function __construct($action, $names) {
14 $this->action
= $action;
15 $this->names
= (array) $names;
18 public function getSig() {
19 return 'ext:' . implode(',', $this->names
);
22 public function isValid() {
23 if (!in_array($this->action
, array('install', 'uninstall'))) {
26 foreach ($this->names
as $name) {
27 if (!is_string($name)) {
34 public function run($ctx) {
35 $allKeys = \CRM_Extension_System
::singleton()->getFullContainer()->getKeys();
36 $names = \CRM_Utils_String
::filterByWildcards($this->names
, $allKeys, TRUE);
38 $manager = \CRM_Extension_System
::singleton()->getManager();
39 switch ($this->action
) {
41 $manager->install($names);
45 $manager->disable($names);
46 $manager->uninstall($names);