Magento 2 Documentation  2.3
Documentation for Magento 2 CMS v2.3 (December 2018)
ConvertSerializedData.php
Go to the documentation of this file.
1 <?php
8 
17 
23 {
27  private $moduleDataSetup;
28 
32  private $queryModifierFactory;
33 
37  private $aggregatedFieldDataConverter;
38 
43  public function __construct(
44  \Magento\Framework\Setup\ModuleDataSetupInterface $moduleDataSetup,
45  QueryModifierFactory $queryModifierFactory,
46  AggregatedFieldDataConverter $aggregatedFieldDataConverter
47  ) {
48  $this->moduleDataSetup = $moduleDataSetup;
49  $this->queryModifierFactory = $queryModifierFactory;
50  $this->aggregatedFieldDataConverter = $aggregatedFieldDataConverter;
51  }
52 
56  public function apply()
57  {
58  $this->convertSerializedData();
59  }
60 
64  public static function getDependencies()
65  {
66  return [UpgradeModelInstanceClassAliases::class];
67  }
68 
72  public static function getVersion()
73  {
74  return '2.0.1';
75  }
76 
80  public function getAliases()
81  {
82  return [];
83  }
84 
88  private function convertSerializedData()
89  {
90  $layoutUpdateQueryModifier = $this->queryModifierFactory->create(
91  'like',
92  [
93  'values' => [
94  'xml' => '%conditions_encoded%'
95  ]
96  ]
97  );
98  $this->aggregatedFieldDataConverter->convert(
99  [
100  new FieldToConvert(
101  SerializedToJson::class,
102  $this->moduleDataSetup->getTable('widget_instance'),
103  'instance_id',
104  'widget_parameters'
105  ),
106  new FieldToConvert(
107  LayoutUpdateConverter::class,
108  $this->moduleDataSetup->getTable('layout_update'),
109  'layout_update_id',
110  'xml',
111  $layoutUpdateQueryModifier
112  ),
113  ],
114  $this->moduleDataSetup->getConnection()
115  );
116  }
117 }
__construct(\Magento\Framework\Setup\ModuleDataSetupInterface $moduleDataSetup, QueryModifierFactory $queryModifierFactory, AggregatedFieldDataConverter $aggregatedFieldDataConverter)