|
Apache/2.4.41 (Ubuntu) Linux vmi616275.contaboserver.net 5.4.0-84-generic #94-Ubuntu SMP Thu Aug 26 20:27:37 UTC 2021 x86_64 uid=33(www-data) gid=33(www-data) groups=33(www-data) server ip : 62.171.164.128 | your ip : 127.0.0.1 safemode OFF > / home / dev2.destoffenstraat.com / app / code / SendCloud / SendCloud / Setup / |
Filename | /home/dev2.destoffenstraat.com/app/code/SendCloud/SendCloud/Setup/Uninstall.php |
Size | 2.55 kb |
Permission | rwxrwxrwx |
Owner | root : root |
Create time | 17-Aug-2025 10:26 |
Last modified | 11-Feb-2023 11:04 |
Last accessed | 23-Aug-2025 02:07 |
Actions | edit | rename | delete | download (gzip) |
View | text | code | image |
<?php
namespace SendCloud\SendCloud\Setup;
use Magento\Framework\App\RequestInterface;
use Magento\Framework\Model\AbstractModel;
use Magento\Framework\Setup\ModuleContextInterface;
use Magento\Framework\Setup\SchemaSetupInterface;
use Magento\Framework\Setup\UninstallInterface;
use Magento\Config\Model\ResourceModel\Config\Data;
use Magento\Config\Model\ResourceModel\Config\Data\CollectionFactory;
class Uninstall implements UninstallInterface
{
/**
* @var CollectionFactory
*/
protected $collectionFactory;
/**
* @var Data
*/
protected $configResource;
/**
* @param CollectionFactory $collectionFactory
* @param Data $configResource
*/
public function __construct(
CollectionFactory $collectionFactory,
Data $configResource
) {
$this->collectionFactory = $collectionFactory;
$this->configResource = $configResource;
}
/**
* {@inheritdoc}
* @SuppressWarnings(PHPMD.ExcessiveMethodLength)
* @SuppressWarnings(PHPMD.Generic.CodeAnalysis.UnusedFunctionParameter)
*/
// @codingStandardsIgnoreStart
public function uninstall(SchemaSetupInterface $setup, ModuleContextInterface $context)
// @codingStandardsIgnoreEnd
{
$this->dropSendcloudTable($setup);
$this->cleanConfigData();
}
/**
* Delete sendcloud core config data
*
* @throws \Exception
*/
private function cleanConfigData()
{
$this->deleteByFilter('carriers/sendcloud');
$this->deleteByFilter('carriers/sendcloud_checkout');
$this->deleteByFilter('sendcloud');
}
/**
* Drop sendcloud service point rate table
*
* @param SchemaSetupInterface $setup
*/
private function dropSendcloudTable(SchemaSetupInterface $setup)
{
if ($setup->tableExists('sendcloud_servicepointrate')) {
$setup->getConnection()->dropTable('sendcloud_servicepointrate');
}
if ($setup->tableExists('sendcloud_shipping_zones')) {
$setup->getConnection()->dropTable('sendcloud_shipping_zones');
}
if ($setup->tableExists('sendcloud_shipping_methods')) {
$setup->getConnection()->dropTable('sendcloud_shipping_methods');
}
}
/**
* @param string $filter
* @return void
*/
private function deleteByFilter(string $filter)
{
$data = $this->collectionFactory->create()->addPathFilter($filter);
foreach ($data as $config) {
$this->configResource->delete($config);
}
}
}
namespace SendCloud\SendCloud\Setup;
use Magento\Framework\App\RequestInterface;
use Magento\Framework\Model\AbstractModel;
use Magento\Framework\Setup\ModuleContextInterface;
use Magento\Framework\Setup\SchemaSetupInterface;
use Magento\Framework\Setup\UninstallInterface;
use Magento\Config\Model\ResourceModel\Config\Data;
use Magento\Config\Model\ResourceModel\Config\Data\CollectionFactory;
class Uninstall implements UninstallInterface
{
/**
* @var CollectionFactory
*/
protected $collectionFactory;
/**
* @var Data
*/
protected $configResource;
/**
* @param CollectionFactory $collectionFactory
* @param Data $configResource
*/
public function __construct(
CollectionFactory $collectionFactory,
Data $configResource
) {
$this->collectionFactory = $collectionFactory;
$this->configResource = $configResource;
}
/**
* {@inheritdoc}
* @SuppressWarnings(PHPMD.ExcessiveMethodLength)
* @SuppressWarnings(PHPMD.Generic.CodeAnalysis.UnusedFunctionParameter)
*/
// @codingStandardsIgnoreStart
public function uninstall(SchemaSetupInterface $setup, ModuleContextInterface $context)
// @codingStandardsIgnoreEnd
{
$this->dropSendcloudTable($setup);
$this->cleanConfigData();
}
/**
* Delete sendcloud core config data
*
* @throws \Exception
*/
private function cleanConfigData()
{
$this->deleteByFilter('carriers/sendcloud');
$this->deleteByFilter('carriers/sendcloud_checkout');
$this->deleteByFilter('sendcloud');
}
/**
* Drop sendcloud service point rate table
*
* @param SchemaSetupInterface $setup
*/
private function dropSendcloudTable(SchemaSetupInterface $setup)
{
if ($setup->tableExists('sendcloud_servicepointrate')) {
$setup->getConnection()->dropTable('sendcloud_servicepointrate');
}
if ($setup->tableExists('sendcloud_shipping_zones')) {
$setup->getConnection()->dropTable('sendcloud_shipping_zones');
}
if ($setup->tableExists('sendcloud_shipping_methods')) {
$setup->getConnection()->dropTable('sendcloud_shipping_methods');
}
}
/**
* @param string $filter
* @return void
*/
private function deleteByFilter(string $filter)
{
$data = $this->collectionFactory->create()->addPathFilter($filter);
foreach ($data as $config) {
$this->configResource->delete($config);
}
}
}