рдШреЛрд╖рдгрд╛ рдпреЛрдЬрдирд╛ рдФрд░ рдЗрд╕рдХреЗ рд╕рд╛рде рдЧрд▓рдд рдХреНрдпрд╛ рд╣реИ Magento 2

рд╕рднреА рдХреЛ рдирдорд╕реНрдХрд╛рд░ред рдпрд╣ рдкреНрд░рдХрд╛рд╢рди рдкрд╣рд▓реА рдмрд╛рд░ рдореЗрдВ рд╕рддреНрдп рдХрд╛ рд╢реАрд░реНрд╖рдХ рд╣реЛрдиреЗ рдХрд╛ рджрд┐рдЦрд╛рд╡рд╛ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдХреЗрд╡рд▓ рдореЗрд░реА рд╡реНрдпрдХреНрддрд┐рдЧрдд рд░рд╛рдп рд╣реИ, рдЕрдЧрд░ рдЖрдк рдЗрд╕реЗ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рд╕рд╛рдЭрд╛ рдХрд░рддреЗ рд╣реИрдВ, рдпрджрд┐ рдирд╣реАрдВ, рддреЛ рдореИрдВ рдЪрд░реНрдЪрд╛ рдХреЗ рд▓рд┐рдП рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ рдореЗрдВ рдкреВрдЫрддрд╛ рд╣реВрдВред

рддреЛ, рдмрд┐рдВрджреБ рдХреЗ рдХрд░реАрдмред рд╕рдВрд╕реНрдХрд░рдг Magento 2.3 рдФрд░ рдЙрдЪреНрдЪрддрд░ рдореЗрдВ, рдПрдХ рдШреЛрд╖рдгрд╛рддреНрдордХ рдпреЛрдЬрдирд╛ рдХреЗ рд░реВрдк рдореЗрдВ рдЗрд╕ рддрд░рд╣ рдХреЗ "рдЧреЛрдЦрд░реВ" рдерд╛ред рдпрд╣ рдШреЛрд╖рд┐рдд рдпреЛрдЬрдирд╛ рдХреНрдпрд╛ рд╣реИ? рдЕрдЧрд░ рд╣рдо Magento рдХреЗ рдкреНрд░рд▓реЗрдЦрди рдХреА рдУрд░ рдореБрдбрд╝рддреЗ рд╣реИрдВ, рддреЛ рдпрд╣ рдХрд╛рд▓реЗ рдФрд░ рд╕рдлреЗрдж рд░рдВрдЧ рдореЗрдВ рд▓рд┐рдЦрд╛ рдЬрд╛рддрд╛ рд╣реИ - "рдПрдХ рдШреЛрд╖рдгрд╛ рдпреЛрдЬрдирд╛ рдХрд╛ рдЙрджреНрджреЗрд╢реНрдп Magento рдХреА рд╕реНрдерд╛рдкрдирд╛ рдФрд░ рдЕрджреНрдпрддрди рдХреЛ рд╕рд░рд▓ рдмрдирд╛рдирд╛ рд╣реИ"ред

рд╕рдм рдХреБрдЫ рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛ рд▓рдЧрддрд╛ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдЗрд╕рд╕реЗ рдкрд╣рд▓реЗ рдХрд┐ рдбреЗрд╡рд▓рдкрд░реНрд╕ рдХреЛ рдмрд╣реБрдд рд╕рд╛рд░реА рд╕реНрдерд╛рдкрд┐рдд рдФрд░ рдЕрдкрдЧреНрд░реЗрдб рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд▓рд┐рдЦрдирд╛ рдкрдбрд╝рддрд╛ рдерд╛ (рдПрдо 1 рдореЗрдВ рд╕рд╛рдорд╛рдиреНрдп рд░реВрдк рд╕реЗ рдЙрдирдХреЗ рд╕рд╛рде рдереЛрдбрд╝рд╛ рдмреБрд░рд╛ рд╕рдкрдирд╛ рдерд╛), рд╕рдВрд╕реНрдХрд░рдг 2.3 рддрдХ рдпрд╣ рдЖрд╡рд╢реНрдпрдХ рдерд╛ рдХрд┐ рдХрд╛рд░реНрдпреЛрдВ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд рд╕рдВрдЦреНрдпрд╛ рдореЗрдВ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд░рдЦреА рдЬрд╛рдП, рдЕрд░реНрдерд╛рддреН

InstallSchema - рдбреЗрдЯрд╛рдмреЗрд╕ рд╕рдВрд░рдЪрдирд╛ рдХреЛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдореЙрдбреНрдпреВрд▓ рд╕реНрдерд╛рдкрд┐рдд рд╣реЛрдиреЗ рдкрд░ рдпрд╣ рд╡рд░реНрдЧ рд▓реЙрдиреНрдЪ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
InstallData - рдпрд╣ рд╡рд░реНрдЧ рд▓реЙрдиреНрдЪ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдЬрдм рдбреЗрдЯрд╛рдмреЗрд╕ рдбреЗрдЯрд╛рдмреЗрд╕ рдЯреЗрдмрд▓ рдбреЗрдЯрд╛ рдХреЛ рдЗрдирд┐рд╢рд┐рдпрд▓рд╛рдЗрдЬрд╝ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЗрдВрд╕реНрдЯреЙрд▓ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
UpgradSchema - рдбреЗрдЯрд╛рдмреЗрд╕ рд╕рдВрд░рдЪрдирд╛ рдХреЛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдореЙрдбреНрдпреВрд▓ рдЕрдкрдбреЗрдЯ рдХрд┐рдП рдЬрд╛рдиреЗ рдкрд░ рдпрд╣ рд╡рд░реНрдЧ рд▓реЙрдиреНрдЪ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
UpgradData - рдпрд╣ рд╡рд░реНрдЧ рд▓реЙрдиреНрдЪ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдЬрдм рдореЙрдбреНрдпреВрд▓ рдХреЛ рддрд╛рд▓рд┐рдХрд╛ рд╕реЗ рдбреЗрдЯрд╛ рдЬреЛрдбрд╝рдиреЗ / рд╣рдЯрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрджреНрдпрддрди рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
рдЕрдирдЗрдВрд╕реНрдЯреЙрд▓ - рдпрд╣ рд╡рд░реНрдЧ рдбреЗрдЯрд╛рдмреЗрд╕ рд╕реЗ рдбреЗрдЯрд╛ рдФрд░ рддрд╛рд▓рд┐рдХрд╛рдУрдВ рдХреЛ рд╣рдЯрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рд▓реЙрдиреНрдЪ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред

рд╕рд╣рдордд рд╣реВрдВ, рдпрд╣ рдкреНрд░рддреНрдпреЗрдХ рдЫреАрдВрдХ рдХреЗ рд▓рд┐рдП рдПрдХ рдЕрд▓рдЧ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд▓рд┐рдЦрдиреЗ рд╕реЗ рдмреЗрд╣рддрд░ рд╣реИред рд▓реЗрдХрд┐рди рдпрд╣ рдмрд╣реБрдд рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рдирд╣реАрдВ рдерд╛, рдХреНрдпреЛрдВрдХрд┐ рдореБрдЭреЗ рдЗрди рд▓рд┐рдкрд┐рдпреЛрдВ рдореЗрдВ рд╕рдВрд╕реНрдХрд░рдг, рдЯреНрд░реИрдХ рдФрд░ рд╕рдордЭрдиреЗ рдХрд╛ рдкрд╛рд▓рди рдХрд░рдирд╛ рдерд╛ рдФрд░ рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рд╡реЗ 4000+ рд▓рд╛рдЗрдиреЛрдВ рдХреЗ рд╡рд┐рд╢рд╛рд▓ "рдлреБрдЯрдХреНрд▓реЙрде" рдореЗрдВ рд╡рд┐рдХрд╕рд┐рдд рд╣реБрдПред рдирддреАрдЬрддрди, рдпрд╣ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХрд╛рдлреА рдЕрд╕рдлрд▓ рд░рд╣рд╛ред рдлрд╛рдЗрд▓реЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рдореЗрдВ рдХрдореА рдЖрдИ рд╣реИ, рд▓реЗрдХрд┐рди рдХреЛрдб рдХреА рд▓рд╛рдЗрдиреЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рдореЗрдВ рд╡реГрджреНрдзрд┐ рд╣реБрдИ рд╣реИред

рддрдм рдШреЛрд╖рдгрд╛ рдпреЛрдЬрдирд╛ рдмрдЪрд╛рд╡ рдореЗрдВ рдЖрдИред рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдпрд╣ рдПрдХ рдПрдХрд▓ рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдЖрдпрд╛ - db_schema.xml ред рдЬрд┐рд╕рдореЗрдВ рдЖрдк рдбреЗрдЯрд╛рдмреЗрд╕ рдХреА рдЕрдВрддрд┐рдо рд╕реНрдерд┐рддрд┐ рдХреЛ рд╕реНрдЯреЛрд░ рдХрд░рддреЗ рд╣реИрдВред рдпрд╣реА рд╣реИ, рдпрджрд┐ рдЖрдкрдХреЛ рдореЙрдбреНрдпреВрд▓ рдХреЗ рд▓рд┐рдП рдПрдХ рдХрд╕реНрдЯрдо рдЯреЗрдмрд▓ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рддреЛ рдЖрдк рдЗрд╕ рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдЖрд╡рд╢реНрдпрдХ рдлрд╝реАрд▓реНрдб рдФрд░ рдЙрд╕рдХрд╛ рд╡рд░реНрдгрди рдХрд░рддреЗ рд╣реИрдВред рдЗрд╕рдХреЗ рдмрд╛рдж, рдореИрдЬрдВрдЯрд╛ рдЖрдкрдХреЗ рд▓рд┐рдП рдПрдХ рдЯреЗрдмрд▓ рдмрдирд╛рдПрдЧрд╛ред рдпрджрд┐ рдЖрдкрдХреЛ рдкрд╣рд▓реЗ рд╕реЗ рдмрдирд╛рдИ рдЧрдИ рддрд╛рд▓рд┐рдХрд╛ рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рддреЛ рдЖрдк рдмрд╕ db_schema.xml рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрди рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рдпрд╣ рд╕рдм (рдЬрд╛рджреВ рдЕрдкрдиреЗ рдЖрдк рд╣реЛрдЧрд╛)ред рдЖрдкрдХреЛ рд╕рдВрд╕реНрдХрд░рдг рдХреА рдирд┐рдЧрд░рд╛рдиреА рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ, рдЖрдкрдХреЛ рдореЙрдбреНрдпреВрд▓ рдХреЗ рдкреНрд░рддреНрдпреЗрдХ рдирдП рд╕рдВрд╕реНрдХрд░рдг рдХреЗ рд▓рд┐рдП рдбреЗрдЯрд╛рдмреЗрд╕ рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд▓рд┐рдЦрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ, рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЖрдкрдХреЛ рдЕрдирд╛рд╡рд╢реНрдпрдХ рд╕рдВрдЪрд╛рд▓рди рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИред рд╕рд╣рдордд - рдпрд╣ рдЕрдЪреНрдЫрд╛ рд╣реИред

рд▓реЗрдХрд┐рди рдорд░рд╣рдо рдореЗрдВ рдПрдХ рдордХреНрдЦреА рдХреЗ рдмрд┐рдирд╛ рдорд░рд╣рдо рдореЗрдВ рдХреЛрдИ рдордХреНрдЦреА рдирд╣реАрдВ рд╣реИред (рдпрд╣ рдПрдХ рдЯрд╛рдЗрдкреЛ рдирд╣реАрдВ рд╣реИ, рдЬреЛ рдореИрдЧреЗрдВрдЯреЛ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ рдореБрдЭреЗ рд╕рдордЭ рдЬрд╛рдПрдЧрд╛ :))ред

рдХрд╕реНрдЯрдо рдЯреЗрдмрд▓ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рджреМрд░рд╛рди рд╣реА рдШреЛрд╖рдгрд╛рддреНрдордХ рдпреЛрдЬрдирд╛ рдЕрдЪреНрдЫреА рд╣реИред рдпрджрд┐ рдЖрдкрдХреЛ рдХрд┐рд╕реА рдЙрддреНрдкрд╛рдж рдпрд╛ рд╢реНрд░реЗрдгреА рдореЗрдВ рдкреНрд░реЛрдЧреНрд░рд╛рдореЗрдЯрд┐рдХ рд░реВрдк рд╕реЗ рдХреЛрдИ рд╡рд┐рд╢реЗрд╖рддрд╛ рдЬреЛрдбрд╝рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рддреЛ INSERT рдпрд╛ UPDATE рдХрд░реЗрдВ, рдпрд╛ рдЕрдВрдд рдореЗрдВ рд╕реНрдХреАрдорд╛ рдореЗрдВ рдХреБрдЫ рдмрджрд▓реЗрдВ, рдХреГрдкрдпрд╛ рдкреИрдЪ рд▓рд┐рдЦреЗрдВред рд╣рдо рдЙрдирдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдиреАрдЪреЗ рдмрд╛рдд рдХрд░реЗрдВрдЧреЗред

рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдХрд┐рд╕реА рдЙрддреНрдкрд╛рдж рдХреЗ рд▓рд┐рдП рдПрдХ рдХрд╕реНрдЯрдо рд╡рд┐рд╢реЗрд╖рддрд╛ рдЬреЛрдбрд╝рдиреЗ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВред

1. рдЖрдЗрдП рдореЙрдбреНрдпреВрд▓ рдореЗрдВ рдирд┐рдореНрди рд╡рд░реНрдЧ рдмрдирд╛рдХрд░ рд╢реБрд░реВ рдХрд░реЗрдВ:
рд╕реЗрдЯрдЕрдк \ Patch \ Data \ AddAlternativeNameAttribute.php

рдПрдХ рд╢реБрд░реБрдЖрдд рдХреЗ рд▓рд┐рдП рдЬрд┐рд╕рдореЗрдВ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд╕рд╛рдордЧреНрд░реА рд╣реЛрдЧреА

<?php namespace Foo\Bar\Setup\Patch\Data; use Magento\Eav\Setup\EavSetupFactory; use Magento\Framework\Setup\ModuleDataSetupInterface; use Magento\Framework\Setup\Patch\DataPatchInterface; class AddAlternativeNameAttribute implements DataPatchInterface { /** @var ModuleDataSetupInterface */ private $moduleDataSetup; /** @var EavSetupFactory */ private $eavSetupFactory; /** * @param ModuleDataSetupInterface $moduleDataSetup * @param EavSetupFactory $eavSetupFactory */ public function __construct( ModuleDataSetupInterface $moduleDataSetup, EavSetupFactory $eavSetupFactory ) { $this->moduleDataSetup = $moduleDataSetup; $this->eavSetupFactory = $eavSetupFactory; } } 

DataPatchInterface рддреАрди рдХрд╛рд░реНрдпреЛрдВ рдХреЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреА рдЕрдкреЗрдХреНрд╖рд╛ рдХрд░рддрд╛ рд╣реИ: рд▓рд╛рдЧреВ рдХрд░реЗрдВ , getD dependencies рдФрд░ getAliases ред

2. рд▓рд╛рдЧреВ рдлрд╝рдВрдХреНрд╢рди рд╡рд╣ рд╕реНрдерд╛рди рд╣реИ рдЬрд╣рд╛рдВ рд╡рд┐рд╢реЗрд╖рддрд╛ рддрддреНрд╡ рдмрдирд╛рдП рдЬрд╛рддреЗ рд╣реИрдВред рдЕрдм рдпрд╣рд╛рдВ рд╕реНрдЯрд╛рд░реНрдЯрдЕрдк рд╢реБрд░реВ рдХрд░рдиреЗ рдФрд░ рдПрдВрдбрд╕реЗрдЯрдЕрдк рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдХреЙрд▓ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рд╣рдо рдХреЗрд╡рд▓ рд╡рд┐рд╢реЗрд╖рддрд╛рдПрдБ рдмрдирд╛рддреЗ рд╣реИрдВред рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, EavSetupFactory рдХрд╛ рдПрдХ рдЙрджрд╛рд╣рд░рдг рдмрдирд╛рдПрдВ, рд╣рдорд╛рд░реЗ рдореЙрдбреНрдпреВрд▓рдбреЗрдЯрд╛рд╕реЗрдЯ рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЛ рдкрд╛рд╕ рдХрд░рддреЗ рд╣реБрдП, рдФрд░ рд╣рдорд╛рд░реА рд╡рд┐рд╢реЗрд╖рддрд╛ рдЬреЛрдбрд╝реЗрдВ:

  /** * {@inheritdoc} */ public function apply() { /** @var EavSetup $eavSetup */ $eavSetup = $this->eavSetupFactory->create(['setup' => $this->moduleDataSetup]); $eavSetup->addAttribute('catalog_product', 'alternative_name', [ 'type' => 'varchar', 'label' => 'Alternative Name', 'input' => 'text', 'used_in_product_listing' => true, 'user_defined' => true, ]); } 

3. рдЧреЗрдЯрдбрд┐рдкреЗрдВрдбреЗрдВрд╕реА рдлрд╝рдВрдХреНрд╢рди рд╕реНрдЯреНрд░рд┐рдВрдЧреНрд╕ рдХреА рдПрдХ рд╕рд░рдгреА рдХреА рдЕрдкреЗрдХреНрд╖рд╛ рдХрд░рддрд╛ рд╣реИ рдЬрд┐рд╕рдореЗрдВ рдирд┐рд░реНрднрд░рддрд╛ рд╡рд░реНрдЧреЛрдВ рдХреЗ рдирд╛рдо рд╢рд╛рдорд┐рд▓ рд╣реИрдВред рдпрд╣ рдирдИ рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рд╣реИ рдЬреЛ рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдШреЛрд╖рдгрд╛рддреНрдордХ рд╕реНрдХреАрдорд╛ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЗ рд▓рд┐рдП рджрд┐рдЦрд╛рдИ рджреЗрддреА рд╣реИ, рдФрд░ рдпрд╣ рдореИрдЧреЗрдВрдЯреЛ рдХреЛ рдмрддрд╛рддреА рд╣реИ рдХрд┐ рдЗрд╕реЗ "рдкреИрдЪ" рдХреЛ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рдЬрд┐рд╕реЗ рд╣рдордиреЗ рдЕрдкрдиреА рд╕реНрдерд╛рдкрдирд╛ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╕реЗ рдкрд╣рд▓реЗ рдпрд╣рд╛рдВ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд┐рдпрд╛ рдерд╛ред рдпрд╣ рдореИрдЧреЗрдВрдЯреЛ рдкреИрдЪ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЗ рдирд┐рд╖реНрдкрд╛рджрди рдХреНрд░рдо рдХреЛ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд░рддрд╛ рд╣реИред

  /** * {@inheritdoc} */ public static function getDependencies() { return []; } 

4. рдЕрдВрддрд┐рдо getAliases рдлрд╝рдВрдХреНрд╢рди рдЬреЛ рдЗрд╕ рдкреИрдЪ рдХреЗ рд▓рд┐рдП рдЙрдкрдирд╛рдореЛрдВ рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рддрд╛ рд╣реИред рдЪреВрдБрдХрд┐ рд╣рдо рдЕрдм рд╕рдВрд╕реНрдХрд░рдг рд╕рдВрдЦреНрдпрд╛рдПрдБ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВ, рд╣рдорд╛рд░реА рдХрдХреНрд╖рд╛ рдХрд╛ рдирд╛рдо рдмрджрд▓ рд╕рдХрддрд╛ рд╣реИ, рдФрд░ рдпрджрд┐ рдРрд╕рд╛ рд╣реЛрддрд╛ рд╣реИ, рддреЛ рд╣рдореЗрдВ рдпрд╣рд╛рдБ рдкреБрд░рд╛рдиреЗ рд╡рд░реНрдЧ рдХрд╛ рдирд╛рдо рдмрддрд╛рдирд╛ рд╣реЛрдЧрд╛ рддрд╛рдХрд┐ рд╡рд╣ рджреВрд╕рд░реА рдмрд╛рд░ рди рдЪрд▓реЗ (рдкреИрдЪ рдХреЗрд╡рд▓ рдПрдХ рдмрд╛рд░ рдЪрд▓рд╛рдП рдЬрд╛рддреЗ рд╣реИрдВ)

  /** * {@inheritdoc} */ public function getAliases() { return []; } 

рдЕрдВрддрд┐рдо рд╡рд░реНрдЧ рдЗрд╕ рддрд░рд╣ рджрд┐рдЦреЗрдЧрд╛:

 <?php namespace Foo\Bar\Setup\Patch\Data; use Magento\Eav\Setup\EavSetup; use Magento\Eav\Setup\EavSetupFactory; use Magento\Framework\Setup\ModuleDataSetupInterface; use Magento\Framework\Setup\Patch\DataPatchInterface; class AddAlternativeNameAttribute implements DataPatchInterface { /** @var ModuleDataSetupInterface */ private $moduleDataSetup; /** @var EavSetupFactory */ private $eavSetupFactory; /** * @param ModuleDataSetupInterface $moduleDataSetup * @param EavSetupFactory $eavSetupFactory */ public function __construct( ModuleDataSetupInterface $moduleDataSetup, EavSetupFactory $eavSetupFactory ) { $this->moduleDataSetup = $moduleDataSetup; $this->eavSetupFactory = $eavSetupFactory; } /** * {@inheritdoc} */ public function apply() { /** @var EavSetup $eavSetup */ $eavSetup = $this->eavSetupFactory->create(['setup' => $this->moduleDataSetup]); $eavSetup->addAttribute('catalog_product', 'alternative_name', [ 'type' => 'varchar', 'label' => 'Alternative Name', 'input' => 'text', 'used_in_product_listing' => true, 'user_defined' => true, ]); } /** * {@inheritdoc} */ public static function getDependencies() { return []; } /** * {@inheritdoc} */ public function getAliases() { return []; } } 

5. рдЕрдм рдмрд┐рди / рдореИрдЧреНрдиреЗрдЯреЛ рд╕реЗрдЯрдЕрдк рдЪрд▓рд╛рдПрдВ : рдЕрдкрдЧреНрд░реЗрдб рдХрд░реЗрдВ рддрд╛рдХрд┐ рд╣рдорд╛рд░рд╛ рдкреИрдЪ рд▓рд╛рдЧреВ рд╣реЛред рд╕рднреА рдкреИрдЪ рдЬрд┐рдиреНрд╣реЗрдВ рд╕рдлрд▓рддрд╛рдкреВрд░реНрд╡рдХ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдореИрдЧреЗрдВрдЯреЛ рд╣рдорд╛рд░реЗ рд╡рд░реНрдЧ (Foo \ Bar \ Setup \ Patch \ Patch \ Data \ AddAlternativeNnAttribute) рдХреЗ рдорд╛рди рдХреЗ рдмрд░рд╛рдмрд░ рдкреИрдЪ_name рдлрд╝реАрд▓реНрдб рдорд╛рди рдХреЗ рд╕рд╛рде рдкреИрдЪ_рд▓рд┐рд╕реНрдЯ рдбреЗрдЯрд╛рдмреЗрд╕ рддрд╛рд▓рд┐рдХрд╛ рдореЗрдВ рдПрдХ рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐ рд╕рдореНрдорд┐рд▓рд┐рдд рдХрд░рддрд╛ рд╣реИред

6. рдкреИрдЪ / рд╕реВрдЪреА рддрд╛рд▓рд┐рдХрд╛ рд╕реЗ рдорд╛рди рдХреЛ рд╣рдЯрд╛рдиреЗ рд╕реЗ рдкреИрдЪ рдмрд┐рди / рдореИрдЧреЗрдВрдЯреЛ рд╕реЗрдЯрдЕрдк: рдирд╡реАрдиреАрдХрд░рдг рд╕реНрдерд╛рдкрдирд╛ рд╢реБрд░реВ рд╣реЛрдиреЗ рдкрд░ рдлрд┐рд░ рд╕реЗ рдЪрд▓рд╛рдиреЗ рдХрд╛ рдХрд╛рд░рдг рд╣реЛрдЧрд╛ред рдкреИрдЪ рдХреЛ рдбреАрдмрдЧ рдХрд░рддреЗ рд╕рдордп рдпрд╣ рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдЙрдкрдпреЛрдЧреА рд╣реЛрдЧреАред

рдкрд░рд┐рдгрд╛рдо:

+ рдШреЛрд╖рдгрд╛ рдпреЛрдЬрдирд╛ рдХрд╕реНрдЯрдо рддрд╛рд▓рд┐рдХрд╛рдУрдВ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХреЛ рд╕рд░рд▓ рдмрдирд╛рддреА рд╣реИ
+ рд╕рдВрд╕реНрдХрд░рдг рдХреА рдирд┐рдЧрд░рд╛рдиреА рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдХреА рдХрдореА
+ рддрд╛рд▓рд┐рдХрд╛рдУрдВ рдореЗрдВ рдЖрд╕рд╛рди рдбреЗрдЯрд╛ рдЙрдиреНрдирдпрди рдФрд░ рдЯреЗрдмрд▓ рдлрд╝реАрд▓реНрдб рдХреЗ рдЕрдиреБрдХреВрд▓рди

- рдПрдХ рдШреЛрд╖рдгрд╛ рдпреЛрдЬрдирд╛ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЙрддреНрдкрд╛рдж рд╢реНрд░реЗрдгреА рдореЗрдВ рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдХреЛ рдЬреЛрдбрд╝рдиреЗ рдореЗрдВ рдЕрд╕рдорд░реНрдерддрд╛
- рдпрджрд┐ рдореЙрдбреНрдпреВрд▓ 2.1, 2.2, 2.3 рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдХреЗ рд▓рд┐рдП рд╕рд╛рд░реНрд╡рднреМрдорд┐рдХ рд╣реИ, рддреЛ рдЖрдкрдХреЛ рдПрдХ рдШреЛрд╖рдгрд╛ рдпреЛрдЬрдирд╛ рдФрд░ рд╕реНрдерд╛рдкрдирд╛ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рджреЛрдиреЛрдВ рд▓рд┐рдЦрдирд╛ рд╣реЛрдЧрд╛ред
- рдХреЛрд░ рдЯреЗрдмрд▓ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкреИрдЪ рд▓рд┐рдЦрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ред

рд╢рд╛рдпрдж рднрд╡рд┐рд╖реНрдп рдореЗрдВ, рдЬрдм рдПрдо 2 рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдПрдХ рдШреЛрд╖рдгрд╛рддреНрдордХ рдпреЛрдЬрдирд╛ рдореЗрдВ рдмрджрд▓ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ рдкреИрдЪ рд▓рд┐рдЦрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реЛрддреА рд╣реИ, рддреЛ рдпрд╣ рд╕реБрдкрд░ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рд╣реЛрдЧрд╛ред рд▓реЗрдХрд┐рди рдХреНрдпрд╛ рдРрд╕рд╛ рд╣реЛрдЧрд╛ рдФрд░ рдХрдм рд╣реЛрддрд╛ рд╣реИ, рдпрд╣ рд╕рд╡рд╛рд▓ рдЦреБрд▓рд╛ рд╣реИред

Source: https://habr.com/ru/post/hi462795/


All Articles