vendor/store.shopware.com/agiqonoci/src/AgiqonOci.php line 14

Open in your IDE?
  1. <?php declare(strict_types=1);
  2. namespace AgiqonOci;
  3. use AgiqonOci\Components\InitialDataPersister;
  4. use Doctrine\DBAL\Connection;
  5. use Shopware\Core\Framework\Plugin;
  6. use Shopware\Core\Framework\Plugin\Context\InstallContext;
  7. use Shopware\Core\Framework\Plugin\Context\UninstallContext;
  8. use AgiqonOci\Components\ProductCustomFieldsInstaller;
  9. use AgiqonOci\Components\CustomerCustomFieldsInstaller;
  10. use Shopware\Core\Framework\Plugin\Context\UpdateContext;
  11. class AgiqonOci extends Plugin
  12. {
  13.     /**
  14.      * Installs plugin custom fields
  15.      *
  16.      * @param InstallContext $installContext
  17.      */
  18.     public function install(InstallContext $installContext): void
  19.     {
  20.         $productCustomFieldsInstaller = new ProductCustomFieldsInstaller($this->container);
  21.         $productCustomFieldsInstaller->installCustomFieldSet($installContext);
  22.         $customerCustomFieldsInstaller = new CustomerCustomFieldsInstaller($this->container);
  23.         $customerCustomFieldsInstaller->installCustomFieldSet($installContext);
  24.     }
  25.     /**
  26.      * Uninstalls plugin custom fields
  27.      *
  28.      * @param UninstallContext $uninstallContext
  29.      */
  30.     public function uninstall(UninstallContext $uninstallContext): void
  31.     {
  32.         $productCustomFieldsInstaller = new ProductCustomFieldsInstaller($this->container);
  33.         $productCustomFieldsInstaller->uninstallCustomFieldSet($uninstallContext);
  34.         $customerCustomFieldsInstaller = new CustomerCustomFieldsInstaller($this->container);
  35.         $customerCustomFieldsInstaller->uninstallCustomFieldSet($uninstallContext);
  36.         if ($uninstallContext->keepUserData()) {
  37.             return;
  38.         }
  39.         $connection $this->container->get(Connection::class);
  40.         $connection->executeStatement('DROP TABLE IF EXISTS `agiqon_oci_unit`');
  41.         $connection->executeStatement('DROP TABLE IF EXISTS `agiqon_oci_shipping_method`');
  42.         $connection->executeStatement('DROP TABLE IF EXISTS `agiqon_oci_cxml_auth`');
  43.         $connection->executeStatement('DROP TABLE IF EXISTS `agiqon_oci_field`');
  44.         $connection->executeStatement('DROP TABLE IF EXISTS `agiqon_oci_field_type`');
  45.         $connection->executeStatement('DROP TABLE IF EXISTS `agiqon_oci_field_accessor`');
  46.         $connection->executeStatement('DROP TABLE IF EXISTS `agiqon_oci_system`');
  47.     }
  48.     public function postInstall(InstallContext $installContext): void
  49.     {
  50.         $initialDataPersister = new InitialDataPersister($this->container);
  51.         $initialDataPersister->persistInitialData();
  52.     }
  53.     public function postUpdate(UpdateContext $updateContext): void
  54.     {
  55.         if (version_compare($updateContext->getCurrentPluginVersion(), '2.0.0''<')) {
  56.             $initialDataPersister = new InitialDataPersister($this->container);
  57.             $initialDataPersister->persistInitialData();
  58.             $customerCustomFieldsInstaller = new CustomerCustomFieldsInstaller($this->container);
  59.             $customerCustomFieldsInstaller->addAgiqonOciSystemCustomField($updateContext);
  60.             $customerCustomFieldsInstaller->setInitialSystemToOciCustomers($updateContext);
  61.         }
  62.     }
  63. }