mirror of
https://github.com/bdnugget/magento2.git
synced 2026-11-08 01:37:36 +00:00
118 lines
3.0 KiB
PHP
118 lines
3.0 KiB
PHP
<?php
|
|
/**
|
|
* Copyright © Magento, Inc. All rights reserved.
|
|
* See COPYING.txt for license details.
|
|
*/
|
|
|
|
namespace Magento\Widget\Setup\Patch\Data;
|
|
|
|
use Magento\Framework\DB\AggregatedFieldDataConverter;
|
|
use Magento\Framework\DB\FieldToConvert;
|
|
use Magento\Framework\DB\Select\QueryModifierFactory;
|
|
use Magento\Framework\DB\DataConverter\SerializedToJson;
|
|
use Magento\Framework\App\ResourceConnection;
|
|
use Magento\Framework\Setup\Patch\DataPatchInterface;
|
|
use Magento\Framework\Setup\Patch\PatchVersionInterface;
|
|
use Magento\Widget\Setup\LayoutUpdateConverter;
|
|
|
|
/**
|
|
* Class ConvertSerializedData
|
|
* @package Magento\Widget\Setup\Patch
|
|
*/
|
|
class ConvertSerializedData implements DataPatchInterface, PatchVersionInterface
|
|
{
|
|
/**
|
|
* @var \Magento\Framework\Setup\ModuleDataSetupInterface
|
|
*/
|
|
private $moduleDataSetup;
|
|
|
|
/**
|
|
* @var QueryModifierFactory
|
|
*/
|
|
private $queryModifierFactory;
|
|
|
|
/**
|
|
* @var AggregatedFieldDataConverter
|
|
*/
|
|
private $aggregatedFieldDataConverter;
|
|
|
|
/**
|
|
* ConvertSerializedData constructor.
|
|
* @param \Magento\Framework\Setup\ModuleDataSetupInterface $moduleDataSetup
|
|
*/
|
|
public function __construct(
|
|
\Magento\Framework\Setup\ModuleDataSetupInterface $moduleDataSetup,
|
|
QueryModifierFactory $queryModifierFactory,
|
|
AggregatedFieldDataConverter $aggregatedFieldDataConverter
|
|
) {
|
|
$this->moduleDataSetup = $moduleDataSetup;
|
|
$this->queryModifierFactory = $queryModifierFactory;
|
|
$this->aggregatedFieldDataConverter = $aggregatedFieldDataConverter;
|
|
}
|
|
|
|
/**
|
|
* {@inheritdoc}
|
|
*/
|
|
public function apply()
|
|
{
|
|
$this->convertSerializedData();
|
|
}
|
|
|
|
/**
|
|
* {@inheritdoc}
|
|
*/
|
|
public static function getDependencies()
|
|
{
|
|
return [UpgradeModelInstanceClassAliases::class];
|
|
}
|
|
|
|
/**
|
|
* {@inheritdoc}
|
|
*/
|
|
public static function getVersion()
|
|
{
|
|
return '2.0.1';
|
|
}
|
|
|
|
/**
|
|
* {@inheritdoc}
|
|
*/
|
|
public function getAliases()
|
|
{
|
|
return [];
|
|
}
|
|
|
|
/**
|
|
* Convert native serialized data to json.
|
|
*/
|
|
private function convertSerializedData()
|
|
{
|
|
$layoutUpdateQueryModifier = $this->queryModifierFactory->create(
|
|
'like',
|
|
[
|
|
'values' => [
|
|
'xml' => '%conditions_encoded%'
|
|
]
|
|
]
|
|
);
|
|
$this->aggregatedFieldDataConverter->convert(
|
|
[
|
|
new FieldToConvert(
|
|
SerializedToJson::class,
|
|
$this->moduleDataSetup->getTable('widget_instance'),
|
|
'instance_id',
|
|
'widget_parameters'
|
|
),
|
|
new FieldToConvert(
|
|
LayoutUpdateConverter::class,
|
|
$this->moduleDataSetup->getTable('layout_update'),
|
|
'layout_update_id',
|
|
'xml',
|
|
$layoutUpdateQueryModifier
|
|
),
|
|
],
|
|
$this->moduleDataSetup->getConnection()
|
|
);
|
|
}
|
|
}
|