| Current Path : /home/rtorresani/www/vendor/magento/framework/Setup/Declaration/Schema/Operations/ |
| Current File : //home/rtorresani/www/vendor/magento/framework/Setup/Declaration/Schema/Operations/DropElement.php |
<?php
/**
* Copyright © Magento, Inc. All rights reserved.
* See COPYING.txt for license details.
*/
namespace Magento\Framework\Setup\Declaration\Schema\Operations;
use Magento\Framework\Setup\Declaration\Schema\Db\AdapterMediator;
use Magento\Framework\Setup\Declaration\Schema\Db\DbSchemaWriterInterface;
use Magento\Framework\Setup\Declaration\Schema\Db\DefinitionAggregator;
use Magento\Framework\Setup\Declaration\Schema\Dto\ElementInterface;
use Magento\Framework\Setup\Declaration\Schema\Dto\TableElementInterface;
use Magento\Framework\Setup\Declaration\Schema\ElementHistory;
use Magento\Framework\Setup\Declaration\Schema\OperationInterface;
/**
* Drop element operation.
*
* Drops structural element.
*/
class DropElement implements OperationInterface
{
/**
* Operation name.
*/
const OPERATION_NAME = 'drop_element';
/**
* @var DbSchemaWriterInterface
*/
private $dbSchemaWriter;
/**
* @var DefinitionAggregator
*/
private $definitionAggregator;
/**
* Constructor.
*
* @param DbSchemaWriterInterface $dbSchemaWriter
* @param DefinitionAggregator $definitionAggregator
*/
public function __construct(
DbSchemaWriterInterface $dbSchemaWriter,
DefinitionAggregator $definitionAggregator
) {
$this->dbSchemaWriter = $dbSchemaWriter;
$this->definitionAggregator = $definitionAggregator;
}
/**
* {@inheritdoc}
*/
public function getOperationName()
{
return self::OPERATION_NAME;
}
/**
* {@inheritdoc}
*/
public function isOperationDestructive()
{
return true;
}
/**
* {@inheritdoc}
*/
public function doOperation(ElementHistory $elementHistory)
{
/**
* @var TableElementInterface | ElementInterface $element
*/
$element = $elementHistory->getNew();
return [
$this->dbSchemaWriter->dropElement(
$element->getTable()->getResource(),
$element->getName(),
$element->getTable()->getName(),
$element->getType()
)
];
}
}