custom/plugins/CkoShopware6/src/CkoShopware6.php line 14

Open in your IDE?
  1. <?php declare(strict_types=1);
  2. namespace Cko\Shopware6;
  3. use Cko\Shopware6\Service\CompatibilityService;
  4. use Cko\Shopware6\Service\PaymentMethodService;
  5. use Shopware\Core\Framework\Context;
  6. use Shopware\Core\Framework\Plugin;
  7. use Shopware\Core\Framework\Plugin\Context\ActivateContext;
  8. use Shopware\Core\Framework\Plugin\Context\DeactivateContext;
  9. use Shopware\Core\Framework\Plugin\Context\UpdateContext;
  10. use Symfony\Component\DependencyInjection\ContainerBuilder;
  11. class CkoShopware6 extends Plugin
  12. {
  13.     /**
  14.      * @throws \Exception
  15.      */
  16.     public function build(ContainerBuilder $container): void
  17.     {
  18.         parent::build($container);
  19.         $compatibilityService = new CompatibilityService($container);
  20.         $compatibilityService->loadServices();
  21.     }
  22.     public function update(UpdateContext $updateContext): void
  23.     {
  24.         parent::update($updateContext);
  25.         if ($updateContext->getPlugin()->isActive()) {
  26.             // We need to install the payment methods again if the plugin is updated
  27.             $this->installPaymentMethods($updateContext->getContext());
  28.         }
  29.     }
  30.     public function activate(ActivateContext $activateContext): void
  31.     {
  32.         parent::activate($activateContext);
  33.         // We have to install again to make sure everything is up-to-date
  34.         $this->installPaymentMethods($activateContext->getContext());
  35.         // We will activate the payment methods when the plugin is activated
  36.         $this->setActivateInstalledPaymentMethods($activateContext->getContext(), true);
  37.     }
  38.     public function deactivate(DeactivateContext $deactivateContext): void
  39.     {
  40.         parent::deactivate($deactivateContext);
  41.         // We will deactivate the payment methods when the plugin is deactivated
  42.         $this->setActivateInstalledPaymentMethods($deactivateContext->getContext(), false);
  43.     }
  44.     private function installPaymentMethods(Context $context): void
  45.     {
  46.         /** @var PaymentMethodService $paymentMethodService */
  47.         $paymentMethodService $this->container->get(PaymentMethodService::class);
  48.         $paymentMethodService->installPaymentMethods($context);
  49.     }
  50.     private function setActivateInstalledPaymentMethods(Context $contextbool $isActive): void
  51.     {
  52.         /** @var PaymentMethodService $paymentMethodService */
  53.         $paymentMethodService $this->container->get(PaymentMethodService::class);
  54.         $paymentMethodService->setActivateInstalledPaymentMethods($context$isActive);
  55.     }
  56. }