custom/plugins/CompraGlobalInformationBarSW6/src/CompraGlobalInformationBarSW6.php line 12

Open in your IDE?
  1. <?php declare(strict_types=1);
  2. namespace Compra\GlobalInformationBarSW6;
  3. use Shopware\Core\Framework\Context;
  4. use Shopware\Core\Framework\DataAbstractionLayer\EntityRepositoryInterface;
  5. use Shopware\Core\Framework\DataAbstractionLayer\Search\Criteria;
  6. use Shopware\Core\Framework\DataAbstractionLayer\Search\Filter\ContainsFilter;
  7. use Shopware\Core\Framework\Plugin;
  8. use Shopware\Core\Framework\Plugin\Context\UninstallContext;
  9. class CompraGlobalInformationBarSW6 extends Plugin
  10. {
  11.     /**
  12.      * @param UninstallContext $uninstallContext
  13.      */
  14.     public function uninstall(UninstallContext $uninstallContext): void
  15.     {
  16.         parent::uninstall($uninstallContext);
  17.         if ($uninstallContext->keepUserData()) {
  18.             return;
  19.         }
  20.         // remove db entries from system_config table
  21.         $this->removeConfiguration($uninstallContext->getContext());
  22.     }
  23.     private function removeConfiguration(Context $context): void
  24.     {
  25.         /** @var EntityRepositoryInterface $systemConfigRepository */
  26.         $systemConfigRepository $this->container->get('system_config.repository');
  27.         $criteria = new Criteria();
  28.         $criteria->addFilter(new ContainsFilter('configurationKey'$this->getName() . '.config.'));
  29.         $idSearchResult $systemConfigRepository->searchIds($criteria$context);
  30.         $ids array_map(static function ($id) {
  31.             return ['id' => $id];
  32.         }, $idSearchResult->getIds());
  33.         if ($ids === []) {
  34.             return;
  35.         }
  36.         $systemConfigRepository->delete($ids$context);
  37.     }
  38. }