<?php /** * Copyright © Magento, Inc. All rights reserved. * See COPYING.txt for license details. */ namespace Magento\UrlRewrite\Setup\Patch\Data; use Magento\Framework\DB\FieldDataConverterFactory; use Magento\Framework\DB\DataConverter\SerializedToJson; use Magento\Framework\App\ResourceConnection; use Magento\Framework\Setup\Patch\DataPatchInterface; use Magento\Framework\Setup\Patch\PatchVersionInterface; /** * Class ConvertSerializedDataToJson * @package Magento\UrlRewrite\Setup\Patch */ class ConvertSerializedDataToJson implements DataPatchInterface, PatchVersionInterface { /** * @var \Magento\Framework\Setup\ModuleDataSetupInterface */ private $moduleDataSetup; /** * @var FieldDataConverterFactory */ private $fieldDataConverterFactory; /** * ConvertSerializedDataToJson constructor. * @param \Magento\Framework\Setup\ModuleDataSetupInterface $moduleDataSetup * @param FieldDataConverterFactory $fieldDataConverterFactory */ public function __construct( \Magento\Framework\Setup\ModuleDataSetupInterface $moduleDataSetup, FieldDataConverterFactory $fieldDataConverterFactory ) { $this->moduleDataSetup = $moduleDataSetup; $this->fieldDataConverterFactory = $fieldDataConverterFactory; } /** * {@inheritdoc} */ public function apply() { $this->moduleDataSetup->getConnection()->startSetup(); $this->convertSerializedDataToJson(); $this->moduleDataSetup->getConnection()->endSetup(); } /** * {@inheritdoc} */ public static function getDependencies() { return []; } /** * {@inheritdoc} */ public static function getVersion() { return '2.0.1'; } /** * {@inheritdoc} */ public function getAliases() { return []; } /** * Convert native php serialized data to json. */ private function convertSerializedDataToJson() { $fieldDataConverter = $this->fieldDataConverterFactory->create(SerializedToJson::class); $fieldDataConverter->convert( $this->moduleDataSetup->getConnection(), $this->moduleDataSetup->getTable('url_rewrite'), 'url_rewrite_id', 'metadata' ); } }