mirror of
https://github.com/bdnugget/magento2.git
synced 2026-11-07 09:17:35 +00:00
82 lines
2.0 KiB
PHP
82 lines
2.0 KiB
PHP
<?php
|
|
/**
|
|
* Copyright © Magento, Inc. All rights reserved.
|
|
* See COPYING.txt for license details.
|
|
*/
|
|
declare(strict_types=1);
|
|
|
|
namespace Magento\Widget\Model;
|
|
|
|
use Magento\Framework\Exception\NoSuchEntityException;
|
|
use Magento\Widget\Model\ResourceModel\Widget\Instance as InstanceResourceModel;
|
|
use Magento\Widget\Model\Widget\InstanceFactory as WidgetInstanceFactory;
|
|
use Magento\Widget\Model\Widget\Instance as WidgetInstance;
|
|
|
|
/**
|
|
* Class DeleteWidgetById
|
|
*/
|
|
class DeleteWidgetById
|
|
{
|
|
/**
|
|
* @var InstanceResourceModel
|
|
*/
|
|
private $resourceModel;
|
|
|
|
/**
|
|
* @var WidgetInstanceFactory|WidgetInstance
|
|
*/
|
|
private $instanceFactory;
|
|
|
|
/**
|
|
* @param InstanceResourceModel $resourceModel
|
|
* @param WidgetInstanceFactory $instanceFactory
|
|
*/
|
|
public function __construct(
|
|
InstanceResourceModel $resourceModel,
|
|
WidgetInstanceFactory $instanceFactory
|
|
) {
|
|
$this->resourceModel = $resourceModel;
|
|
$this->instanceFactory = $instanceFactory;
|
|
}
|
|
|
|
/**
|
|
* Delete widget instance by given instance ID
|
|
*
|
|
* @param int $instanceId
|
|
* @return void
|
|
* @throws \Exception
|
|
*/
|
|
public function execute(int $instanceId) : void
|
|
{
|
|
$model = $this->getWidgetById($instanceId);
|
|
|
|
$this->resourceModel->delete($model);
|
|
}
|
|
|
|
/**
|
|
* Get widget instance by given instance ID
|
|
*
|
|
* @param int $instanceId
|
|
* @return WidgetInstance
|
|
* @throws NoSuchEntityException
|
|
*/
|
|
private function getWidgetById(int $instanceId): WidgetInstance
|
|
{
|
|
/** @var WidgetInstance $widgetInstance */
|
|
$widgetInstance = $this->instanceFactory->create();
|
|
|
|
$this->resourceModel->load($widgetInstance, $instanceId);
|
|
|
|
if (!$widgetInstance->getId()) {
|
|
throw new NoSuchEntityException(
|
|
__(
|
|
'No such entity with instance_id = %instance_id',
|
|
['instance_id' => $instanceId]
|
|
)
|
|
);
|
|
}
|
|
|
|
return $widgetInstance;
|
|
}
|
|
}
|