diff --git a/core/lib/Thelia/Action/Module.php b/core/lib/Thelia/Action/Module.php index 0c11e5423..7cabcc2fa 100644 --- a/core/lib/Thelia/Action/Module.php +++ b/core/lib/Thelia/Action/Module.php @@ -50,9 +50,8 @@ class Module extends BaseAction implements EventSubscriberInterface public function toggleActivation(ModuleToggleActivationEvent $event) { if (null !== $module = ModuleQuery::create()->findPk($event->getModuleId())) { - $moduleClass = new \ReflectionClass($module->getFullNamespace()); - $moduleInstance = $moduleClass->newInstance(); + $moduleInstance = $module->createInstance(); if ( method_exists($moduleInstance, 'setContainer')) { $moduleInstance->setContainer($this->container); @@ -85,12 +84,11 @@ class Module extends BaseAction implements EventSubscriberInterface } try { - $reflected = new \ReflectionClass($module->getFullNamespace()); + $instance = $module->createInstance(); - $instance = $reflected->newInstance(); $instance->setContainer($this->container); - $path = dirname($reflected->getFileName()); + $path = $module->getAbsoluteBaseDir(); $instance->destroy($con, $event->getDeleteData()); diff --git a/core/lib/Thelia/Command/ModuleActivateCommand.php b/core/lib/Thelia/Command/ModuleActivateCommand.php index 56f8c7d06..e05426d23 100644 --- a/core/lib/Thelia/Command/ModuleActivateCommand.php +++ b/core/lib/Thelia/Command/ModuleActivateCommand.php @@ -52,9 +52,7 @@ class ModuleActivateCommand extends BaseModuleGenerate } try { - $moduleReflection = new \ReflectionClass($module->getFullNamespace()); - - $moduleInstance = $moduleReflection->newInstance(); + $moduleInstance = $module->createInstance(); $moduleInstance->activate(); } catch (\Exception $e) { diff --git a/core/lib/Thelia/Command/ModuleDeactivateCommand.php b/core/lib/Thelia/Command/ModuleDeactivateCommand.php index 0501be5d7..e62572486 100755 --- a/core/lib/Thelia/Command/ModuleDeactivateCommand.php +++ b/core/lib/Thelia/Command/ModuleDeactivateCommand.php @@ -52,9 +52,7 @@ class ModuleDeactivateCommand extends BaseModuleGenerate } try { - $moduleReflection = new \ReflectionClass($module->getFullNamespace()); - - $moduleInstance = $moduleReflection->newInstance(); + $moduleInstance = $module->createInstance(); $moduleInstance->deActivate(); } catch (\Exception $e) { diff --git a/core/lib/Thelia/Form/OrderDelivery.php b/core/lib/Thelia/Form/OrderDelivery.php index 69537cedd..74ad75f33 100644 --- a/core/lib/Thelia/Form/OrderDelivery.php +++ b/core/lib/Thelia/Form/OrderDelivery.php @@ -74,8 +74,7 @@ class OrderDelivery extends BaseForm if (null === $module) { $context->addViolation(Translator::getInstance()->trans("Delivery module ID not found")); } else { - $moduleReflection = new \ReflectionClass($module->getFullNamespace()); - if ($moduleReflection->isSubclassOf("Thelia\Module\DeliveryModuleInterface") === false) { + if (! $module->isDeliveryModule()) { $context->addViolation( sprintf(Translator::getInstance()->trans("delivery module %s is not a Thelia\Module\DeliveryModuleInterface"), $module->getCode()) ); diff --git a/core/lib/Thelia/Form/OrderPayment.php b/core/lib/Thelia/Form/OrderPayment.php index 8ec6031b1..9353eee37 100644 --- a/core/lib/Thelia/Form/OrderPayment.php +++ b/core/lib/Thelia/Form/OrderPayment.php @@ -75,8 +75,7 @@ class OrderPayment extends BaseForm $context->addViolation("Payment module ID not found"); } - $moduleReflection = new \ReflectionClass($module->getFullNamespace()); - if ($moduleReflection->isSubclassOf("Thelia\Module\PaymentModuleInterface") === false) { + if (! $module->isPayementModule()) { $context->addViolation( sprintf(Translator::getInstance()->trans("payment module %s is not a Thelia\Module\PaymentModuleInterface"), $module->getCode()) );