Magento 2 Documentation  2.3
Documentation for Magento 2 CMS v2.3 (December 2018)
ModifyColumn.php
Go to the documentation of this file.
1 <?php
8 
14 
19 {
23  const OPERATION_NAME = 'modify_column';
24 
28  private $definitionAggregator;
29 
33  private $dbSchemaWriter;
34 
41  public function __construct(
42  DefinitionAggregator $definitionAggregator,
43  DbSchemaWriterInterface $dbSchemaWriter
44  ) {
45  $this->definitionAggregator = $definitionAggregator;
46  $this->dbSchemaWriter = $dbSchemaWriter;
47  }
48 
52  public function getOperationName()
53  {
54  return self::OPERATION_NAME;
55  }
56 
60  public function isOperationDestructive()
61  {
62  return false;
63  }
64 
68  public function doOperation(ElementHistory $elementHistory)
69  {
71  $column = $elementHistory->getNew();
72 
73  $definition = $this->definitionAggregator->toDefinition($column);
74 
75  return [$this->dbSchemaWriter->modifyColumn(
76  $column->getName(),
77  $column->getTable()->getResource(),
78  $column->getTable()->getName(),
79  $definition
80  )];
81  }
82 }
__construct(DefinitionAggregator $definitionAggregator, DbSchemaWriterInterface $dbSchemaWriter)