custom/plugins/MolliePayments/src/MolliePayments.php line 20

Open in your IDE?
  1. <?php declare(strict_types=1);
  2. namespace Kiener\MolliePayments;
  3. use Exception;
  4. use Kiener\MolliePayments\Service\ApplePayDomainVerificationService;
  5. use Kiener\MolliePayments\Service\CustomFieldService;
  6. use Kiener\MolliePayments\Service\PaymentMethodService;
  7. use Shopware\Core\Framework\DataAbstractionLayer\EntityRepositoryInterface;
  8. use Shopware\Core\Framework\Plugin;
  9. use Shopware\Core\Framework\Plugin\Context\ActivateContext;
  10. use Shopware\Core\Framework\Plugin\Context\DeactivateContext;
  11. use Shopware\Core\Framework\Plugin\Context\InstallContext;
  12. use Shopware\Core\Framework\Plugin\Context\UninstallContext;
  13. use Shopware\Core\Framework\Plugin\Context\UpdateContext;
  14. use Symfony\Component\Config\FileLocator;
  15. use Symfony\Component\DependencyInjection\ContainerBuilder;
  16. use Symfony\Component\DependencyInjection\Loader\XmlFileLoader;
  17. class MolliePayments extends Plugin
  18. {
  19.     public function build(ContainerBuilder $container): void
  20.     {
  21.         parent::build($container);
  22.         // Load dependency injection
  23.         $this->container $container;
  24.         // Load services
  25.         $loader = new XmlFileLoader($container, new FileLocator(__DIR__ '/Resources/config'));
  26.         try {
  27.             $loader->load('services.xml');
  28.         } catch (Exception $e) {
  29.             // @todo Handle Exception
  30.         }
  31.     }
  32.     public function boot(): void
  33.     {
  34.         parent::boot();
  35.     }
  36.     public function install(InstallContext $context) : void
  37.     {
  38.         parent::install($context);
  39.         /** @var EntityRepositoryInterface $customFieldRepository */
  40.         $customFieldRepository $this->container->get('custom_field_set.repository');
  41.         // Add custom fields
  42.         $customFieldService = new CustomFieldService(
  43.             $this->container,
  44.             $customFieldRepository
  45.         );
  46.         $customFieldService->addCustomFields($context->getContext());
  47.     }
  48.     public function update(UpdateContext $context): void
  49.     {
  50.         parent::update($context);
  51.         if($context->getPlugin()->isActive() === true) {
  52.             // add domain verification
  53.             /** @var ApplePayDomainVerificationService $domainVerificationService */
  54.             $domainVerificationService $this->container->get(ApplePayDomainVerificationService::class);
  55.             $domainVerificationService->downloadDomainAssociationFile();
  56.         }
  57.     }
  58.     public function postInstall(InstallContext $context): void
  59.     {
  60.         parent::postInstall($context);
  61.     }
  62.     public function uninstall(UninstallContext $context) : void
  63.     {
  64.         parent::uninstall($context);
  65.     }
  66.     public function activate(ActivateContext $context) : void
  67.     {
  68.         parent::activate($context);
  69.         /** @var PaymentMethodService $paymentMethodHelper */
  70.         $paymentMethodHelper $this->container->get('Kiener\MolliePayments\Service\PaymentMethodService');
  71.         // Add payment methods
  72.         $paymentMethodHelper
  73.             ->setClassName(get_class($this))
  74.             ->addPaymentMethods($context->getContext());
  75.         // add domain verification
  76.         /** @var ApplePayDomainVerificationService $domainVerificationService */
  77.         $domainVerificationService $this->container->get(ApplePayDomainVerificationService::class);
  78.         $domainVerificationService->downloadDomainAssociationFile();
  79.     }
  80.     public function deactivate(DeactivateContext $context) : void
  81.     {
  82.         parent::deactivate($context);
  83.     }
  84. }