ConvertValidationRulesFromSerializedToJson.php 2.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384
  1. <?php
  2. /**
  3. * Copyright © Magento, Inc. All rights reserved.
  4. * See COPYING.txt for license details.
  5. */
  6. namespace Magento\Customer\Setup\Patch\Data;
  7. use Magento\Framework\DB\FieldDataConverterFactory;
  8. use Magento\Framework\DB\DataConverter\SerializedToJson;
  9. use Magento\Framework\App\ResourceConnection;
  10. use Magento\Framework\Setup\ModuleDataSetupInterface;
  11. use Magento\Framework\Setup\Patch\DataPatchInterface;
  12. use Magento\Framework\Setup\Patch\PatchVersionInterface;
  13. /**
  14. * Class ConvertValidationRulesFromSerializedToJson
  15. * @package Magento\Customer\Setup\Patch
  16. */
  17. class ConvertValidationRulesFromSerializedToJson implements DataPatchInterface, PatchVersionInterface
  18. {
  19. /**
  20. * @var ModuleDataSetupInterface
  21. */
  22. private $moduleDataSetup;
  23. /**
  24. * @var FieldDataConverterFactory
  25. */
  26. private $fieldDataConverterFactory;
  27. /**
  28. * ConvertValidationRulesFromSerializedToJson constructor.
  29. * @param ModuleDataSetupInterface $moduleDataSetup
  30. * @param FieldDataConverterFactory $fieldDataConverterFactory
  31. */
  32. public function __construct(
  33. ModuleDataSetupInterface $moduleDataSetup,
  34. FieldDataConverterFactory $fieldDataConverterFactory
  35. ) {
  36. $this->moduleDataSetup = $moduleDataSetup;
  37. $this->fieldDataConverterFactory = $fieldDataConverterFactory;
  38. }
  39. /**
  40. * {@inheritdoc}
  41. */
  42. public function apply()
  43. {
  44. $fieldDataConverter = $this->fieldDataConverterFactory->create(SerializedToJson::class);
  45. $fieldDataConverter->convert(
  46. $this->moduleDataSetup->getConnection(),
  47. $this->moduleDataSetup->getTable('customer_eav_attribute'),
  48. 'attribute_id',
  49. 'validate_rules'
  50. );
  51. }
  52. /**
  53. * {@inheritdoc}
  54. */
  55. public static function getDependencies()
  56. {
  57. return [
  58. MigrateStoresAllowedCountriesToWebsite::class,
  59. ];
  60. }
  61. /**
  62. * {@inheritdoc}
  63. */
  64. public static function getVersion()
  65. {
  66. return '2.0.11';
  67. }
  68. /**
  69. * {@inheritdoc}
  70. */
  71. public function getAliases()
  72. {
  73. return [];
  74. }
  75. }