Magento 2 Documentation  2.3
Documentation for Magento 2 CMS v2.3 (December 2018)
AddComplexElement.php
Go to the documentation of this file.
1 <?php
8 
15 
22 {
26  const OPERATION_NAME = 'add_complex_element';
27 
31  private $definitionAggregator;
32 
36  private $dbSchemaWriter;
37 
44  public function __construct(
45  DefinitionAggregator $definitionAggregator,
46  DbSchemaWriterInterface $dbSchemaWriter
47  ) {
48  $this->definitionAggregator = $definitionAggregator;
49  $this->dbSchemaWriter = $dbSchemaWriter;
50  }
51 
55  public function getOperationName()
56  {
57  return self::OPERATION_NAME;
58  }
59 
63  public function isOperationDestructive()
64  {
65  return false;
66  }
67 
71  public function doOperation(ElementHistory $elementHistory)
72  {
76  $element = $elementHistory->getNew();
77  $definition = $this->definitionAggregator->toDefinition($element);
78 
79  $statement = $this->dbSchemaWriter->addElement(
80  $element->getName(),
81  $element->getTable()->getResource(),
82  $element->getTable()->getName(),
83  $definition,
84  $element->getType()
85  );
86  return [$statement];
87  }
88 }
__construct(DefinitionAggregator $definitionAggregator, DbSchemaWriterInterface $dbSchemaWriter)
$element
Definition: element.phtml:12