custom/plugins/UnzerPayment6/src/UnzerPayment6.php line 30

Open in your IDE?
  1. <?php
  2. declare(strict_types=1);
  3. namespace UnzerPayment6;
  4. use Doctrine\DBAL\Connection;
  5. use Shopware\Core\Framework\DataAbstractionLayer\EntityRepository;
  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\InstallContext;
  10. use Shopware\Core\Framework\Plugin\Context\UninstallContext;
  11. use Shopware\Core\Framework\Plugin\Context\UpdateContext;
  12. use Shopware\Core\Framework\Plugin\Util\PluginIdProvider;
  13. use Symfony\Component\Config\FileLocator;
  14. use Symfony\Component\DependencyInjection\ContainerBuilder;
  15. use Symfony\Component\DependencyInjection\Loader\XmlFileLoader;
  16. use UnzerPayment6\Components\UnzerPaymentClassLoader;
  17. use UnzerPayment6\Installer\CustomFieldInstaller;
  18. use UnzerPayment6\Installer\PaymentInstaller;
  19. include_once 'Components/BackwardsCompatibility/RouteScope.php';
  20. include_once 'Components/BackwardsCompatibility/InvoiceGenerator.php';
  21. if (file_exists(__DIR__ '/../vendor/autoload.php')) {
  22.     (new UnzerPaymentClassLoader())->register();
  23. }
  24. class UnzerPayment6 extends Plugin
  25. {
  26.     public const MAX_DECIMAL_PRECISION 4;
  27.     public function build(ContainerBuilder $container): void
  28.     {
  29.         $loader = new XmlFileLoader($container, new FileLocator(__DIR__ '/DependencyInjection'));
  30.         $loader->load('container.xml');
  31.         parent::build($container);
  32.     }
  33.     /**
  34.      * {@inheritdoc}
  35.      */
  36.     public function install(InstallContext $installContext): void
  37.     {
  38.         /** @var EntityRepository $paymentRepository */
  39.         $paymentRepository $this->container->get('payment_method.repository');
  40.         /** @var EntityRepository $customFieldSetRepository */
  41.         $customFieldSetRepository $this->container->get('custom_field_set.repository');
  42.         /** @var PluginIdProvider $pluginIdProvider */
  43.         $pluginIdProvider $this->container->get(PluginIdProvider::class);
  44.         (new PaymentInstaller($paymentRepository$pluginIdProvider))->install($installContext);
  45.         (new CustomFieldInstaller($customFieldSetRepository))->install($installContext);
  46.     }
  47.     /**
  48.      * {@inheritdoc}
  49.      */
  50.     public function update(UpdateContext $updateContext): void
  51.     {
  52.         /** @var EntityRepository $paymentRepository */
  53.         $paymentRepository $this->container->get('payment_method.repository');
  54.         /** @var EntityRepository $customFieldSetRepository */
  55.         $customFieldSetRepository $this->container->get('custom_field_set.repository');
  56.         /** @var PluginIdProvider $pluginIdProvider */
  57.         $pluginIdProvider $this->container->get(PluginIdProvider::class);
  58.         (new PaymentInstaller($paymentRepository$pluginIdProvider))->update($updateContext);
  59.         (new CustomFieldInstaller($customFieldSetRepository))->update($updateContext);
  60.     }
  61.     /**
  62.      * {@inheritdoc}
  63.      */
  64.     public function activate(ActivateContext $activateContext): void
  65.     {
  66.         /** @var EntityRepository $paymentRepository */
  67.         $paymentRepository $this->container->get('payment_method.repository');
  68.         /** @var EntityRepository $customFieldSetRepository */
  69.         $customFieldSetRepository $this->container->get('custom_field_set.repository');
  70.         /** @var PluginIdProvider $pluginIdProvider */
  71.         $pluginIdProvider $this->container->get(PluginIdProvider::class);
  72.         (new PaymentInstaller($paymentRepository$pluginIdProvider))->activate($activateContext);
  73.         (new CustomFieldInstaller($customFieldSetRepository))->activate($activateContext);
  74.     }
  75.     /**
  76.      * {@inheritdoc}
  77.      */
  78.     public function deactivate(DeactivateContext $deactivateContext): void
  79.     {
  80.         /** @var EntityRepository $paymentRepository */
  81.         $paymentRepository $this->container->get('payment_method.repository');
  82.         /** @var EntityRepository $customFieldSetRepository */
  83.         $customFieldSetRepository $this->container->get('custom_field_set.repository');
  84.         /** @var PluginIdProvider $pluginIdProvider */
  85.         $pluginIdProvider $this->container->get(PluginIdProvider::class);
  86.         (new PaymentInstaller($paymentRepository$pluginIdProvider))->deactivate($deactivateContext);
  87.         (new CustomFieldInstaller($customFieldSetRepository))->deactivate($deactivateContext);
  88.     }
  89.     /**
  90.      * {@inheritdoc}
  91.      */
  92.     public function uninstall(UninstallContext $uninstallContext): void
  93.     {
  94.         /** @var EntityRepository $paymentRepository */
  95.         $paymentRepository $this->container->get('payment_method.repository');
  96.         /** @var EntityRepository $customFieldSetRepository */
  97.         $customFieldSetRepository $this->container->get('custom_field_set.repository');
  98.         /** @var Connection $connection */
  99.         $connection $this->container->get(Connection::class);
  100.         /** @var PluginIdProvider $pluginIdProvider */
  101.         $pluginIdProvider $this->container->get(PluginIdProvider::class);
  102.         (new PaymentInstaller($paymentRepository$pluginIdProvider))->uninstall($uninstallContext);
  103.         if (!$uninstallContext->keepUserData()) {
  104.             (new CustomFieldInstaller($customFieldSetRepository))->uninstall($uninstallContext);
  105.             $connection->executeStatement('
  106.             DROP TABLE IF EXISTS `unzer_payment_transfer_info`;
  107.             DROP TABLE IF EXISTS `unzer_payment_payment_device`;
  108.         '
  109.             );
  110.         }
  111.     }
  112. }