RoadRunner рдХреЗ рд╕рд╛рде Magento Rest API рдХреЛ рдУрд╡рд░рдХреНрд▓реЙрдХ рдХрд░рдирд╛

RoadRunner рдХреЗ рд╕рд╛рде Magento рдХреА рдЧрддрд┐
PHP рдорд░рдиреЗ рдХреЗ рд▓рд┐рдП рдмрдирд╛рдИ рдЧрдИред рдФрд░ рд╕рдм рдХреБрдЫ рдареАрдХ рд╣реЛ рдЬрд╛рдПрдЧрд╛, рд▓реЗрдХрд┐рди рдЙрд╕реЗ рд╣рд╛рд▓ рд╣реА рдореЗрдВ рдРрд╕рд╛ рдХрд░рдиреЗ рдХрд╛ рдореМрдХрд╛ рдирд╣реАрдВ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рдПрдХ рд╕рд╛рд▓ рдкрд╣рд▓реЗ, рд╣рдм рдкрд░, рд░реЛрдбрд░рдирд░ рдЯреВрд▓ рдХреА рдШреЛрд╖рдгрд╛ рд╣реБрдИ , рдЬрд┐рд╕рд╕реЗ PHP рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдореГрддреНрдпреБ рдФрд░ рдкреБрдирд░реБрддреНрдерд╛рди рдХреЗ рдЕрдВрддрд╣реАрди рдЪрдХреНрд░ рдХреЛ рдЫреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП рдордЬрдмреВрд░ рд╣реЛ рдЧрдИред


рд░реЛрдбрд░рдирд░ рдХреЗ рдХрд╛рдо рдХрд╛ рд╕рд┐рджреНрдзрд╛рдВрдд рдЪрд▓ рд░рд╣реА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЛ рдмрдирд╛рдП рд░рдЦрдирд╛ рд╣реИ рдФрд░ рдЖрдиреЗ рд╡рд╛рд▓реЗ рдЕрдиреБрд░реЛрдзреЛрдВ рдХреЛ рдлреЗрдВрдХрдирд╛ рд╣реИ, рдЬреЛ рдбреЗрд╡рд▓рдкрд░реНрд╕ рдХреЗ рдЕрдиреБрд╕рд╛рд░, рдЖрд╡реЗрджрди рдХреЗ рдкреНрд░рджрд░реНрд╢рди рдХреЛ рдмрдврд╝рд╛рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ (рдХрднреА-рдХрднреА 40 рдЧреБрдирд╛ рднреА)ред


рдЪреВрдВрдХрд┐ рдореИрдВ рд▓рдВрдмреЗ рд╕рдордп рд╕реЗ рдореИрдЧреЗрдВрдЯреЛ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рдерд╛, рдЗрд╕рд▓рд┐рдП рдпрд╣ рдПрдХ рдорд╣рд╛рди рд╡рд┐рдЪрд╛рд░ рдХреА рддрд░рд╣ рд▓рдЧ рд░рд╣рд╛ рдерд╛ рдХрд┐ рдЙрдкрдХрд░рдг рдПрдХ рдкреМрд░рд╛рдгрд┐рдХ рдврд╛рдВрдЪреЗ рдкрд░ рдирд╣реАрдВ, рдмрд▓реНрдХрд┐ рдПрдХ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдЕрдиреБрдкреНрд░рдпреЛрдЧ рдкрд░ рдкрд░реАрдХреНрд╖рдг рдХрд░реЗрдЧрд╛, рдЬрд┐рд╕рдХреЗ рд▓рд┐рдП рдореИрдЧреЗрдВрдЯреЛ рдУрдкрди рд╕реЛрд░реНрд╕ рдПрдХ рдорд╣рд╛рди рдлрд┐рдЯ рдерд╛ред


Magento рдХреЗ рдЖрд╡реЗрджрди рдХреА рдкреНрд░рд╛рд░рдВрднрд┐рдХ рд▓рд╛рдЧрдд


рд░реЛрдбрд░рдирд░ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛ рдЧрддрд┐ рджреЗрдиреЗ рдХреЗ рддрд░реАрдХреЗ рдореЗрдВ рдЖрд╡реЗрджрди рдХреЛ рдкреНрд░рд╛рд░рдВрдн рдХрд░рдиреЗ рдХреЗ рдУрд╡рд░рд╣реЗрдб рдХреЛ рдХрдо рдХрд░рдХреЗ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рд╕рдордп (рд╡рд╛рд░реНрдо-рдЕрдк рд╢реБрд░реВ рд╣реЛрдиреЗ рдХреЗ рдмрд╛рдж) рдХреЛ рдХрдо рдХрд░рдирд╛ рд╢рд╛рдорд┐рд▓ рд╣реИред


рдПрдВрдЯреЛрди рд╕рд┐рдЯреНрдЯреВ рдХреА рдкреНрд░рд╕реНрддреБрддрд┐ рд╕реЗ рд╕реНрдХреНрд░реАрдирд╢реЙрдЯ "рд░реЛрдбрд░рдирд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реБрдП рд╣рд╛рдЗрдмреНрд░рд┐рдб рдЧреЛ / рдкреАрдПрдЪрдкреА рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдбрд┐рдЬрд╛рдЗрди рдХрд░рдирд╛"
рдПрдВрдЯреЛрди рд╕рд┐рдЯреНрдЯреВ рдХреА рдкреНрд░рд╕реНрддреБрддрд┐ рд╕реЗ рд╕реНрдХреНрд░реАрдирд╢реЙрдЯ "рд░реЛрдбрд░рдирд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реБрдП рд╣рд╛рдЗрдмреНрд░рд┐рдб рдЧреЛ / рдкреАрдПрдЪрдкреА рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдбрд┐рдЬрд╛рдЗрди рдХрд░рдирд╛"


рдореИрдЧреЗрдВрдЯреЛ рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рд╕реНрдЯрд╛рд░реНрдЯрдЕрдк рдкрд░ рдЦрд░реНрдЪ рдХрд┐рдпрд╛ рдЬрд╛рдиреЗ рд╡рд╛рд▓рд╛ рдореБрдЦреНрдп рд╕рдордп рдирд┐рдореНрдирд╛рдиреБрд╕рд╛рд░ рд╣реИ:


  • рд╕рдВрдЧреАрддрдХрд╛рд░ рдСрдЯреЛрд▓реЛрдбрд┐рдВрдЧ
  • рдмреВрдЯрд╕реНрдЯреНрд░реИрдкрд┐рдВрдЧ

рд╕рдВрдЧреАрддрдХрд╛рд░ рдСрдЯреЛрд▓реЛрдбрд┐рдВрдЧ рдзреНрдпрд╛рди рдЖрдХрд░реНрд╖рд┐рдд рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдПрдХ рдкреАрдПрдЪрдкреА рдЕрдиреБрдкреНрд░рдпреЛрдЧ рдХреЗ рд▓рд┐рдП рдорд╛рдирдХ рд╣реИред


рд╕рдВрдЧреАрддрдХрд╛рд░ рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рд░реВрдкрд░реЗрдЦрд╛ рдкрд░рд┐рдгрд╛рдоред
рд╕рдВрдЧреАрддрдХрд╛рд░ рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рдкрд░рд┐рдгрд╛рдоред


Magento рдХреЗ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдмреВрдЯрд╕реНрдЯреНрд░реИрдкрд┐рдВрдЧ рдореЗрдВ рдПрдХ рддреНрд░реБрдЯрд┐ рд╣реИрдВрдбрд▓рд░ рдХреЛ рдЗрдирд┐рд╢рд┐рдпрд▓рд╛рдЗрдЬрд╝ рдХрд░рдирд╛, рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд╕реНрдЯреЗрдЯрд╕ рдХреА рдЬрд╛рдБрдЪ рдХрд░рдирд╛ рдЖрджрд┐ рд╢рд╛рдорд┐рд▓ рд╣реИрдВред


рд╕рдмрд╕реЗ рдХрдард┐рди рд╣рд┐рд╕реНрд╕рд╛ рдЖрдИрдУрд╕реА рдХрдВрдЯреЗрдирд░ (рдореИрдЧреЗрдВрдЯреЛ рдХреЗ рд╕рдВрджрд░реНрдн рдореЗрдВ "ObjectManager") рдФрд░ рдЖрд╡реЗрджрди рд╡рд╕реНрддреБ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЗрд╕рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдирд┐рд░реНрднрд░рддрд╛ рдЙрджрд╛рд╣рд░рдгреЛрдВ рдХреЗ рдкреБрдирд░рд╛рд╡рд░реНрддреА рдирд┐рд░реНрдорд╛рдг рдХрд╛ рдЖрд░рдВрднреАрдХрд░рдг рд╣реИред


рдмреВрдЯрд╕реНрдЯреНрд░реИрдкрд┐рдВрдЧ рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рд░реВрдкрд░реЗрдЦрд╛ рдкрд░рд┐рдгрд╛рдоред
рдмреВрдЯрд╕реНрдЯреНрд░реИрдкрд┐рдВрдЧ рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рд░реВрдкрд░реЗрдЦрд╛ рдкрд░рд┐рдгрд╛рдоред


рд░реЛрдбрд░рдирд░ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди


рд░реЛрдбрд░рдирд░ рд╢реБрд░реВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рдПрдХ рдХрд╛рд░реНрдпрдХрд░реНрддрд╛ рдмрдирд╛рдиреЗ рдХреА рдЬрд╝рд░реВрд░рдд рд╣реИ рдЬрд┐рд╕рдореЗрдВ рдЖрдиреЗ рд╡рд╛рд▓реЗ рдЕрдиреБрд░реЛрдзреЛрдВ рдХреЛ рд╕реНрд╡реАрдХрд╛рд░ рдХрд░рдиреЗ рдФрд░ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛рдПрдВ рднреЗрдЬрдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдЪрдХреНрд░ рд╣реЛрдЧрд╛ред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдЙрдкрдХрд░рдг PSR-7 рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреЗ рдЕрдиреБрд░реЛрдзреЛрдВ рдФрд░ рдЙрддреНрддрд░реЛрдВ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред рдЖрдзрд┐рдХрд╛рд░рд┐рдХ рджрд╕реНрддрд╛рд╡реЗрдЬ рд╕реЗ, рдпрд╣ рдХреБрдЫ рдЗрд╕ рддрд░рд╣ рджрд┐рдЦрддрд╛ рд╣реИ:


while ($req = $psr7->acceptRequest()) { $resp = new \Zend\Diactoros\Response(); $resp->getBody()->write("hello world"); $psr7->respond($resp); } 

Magento рдФрд░ PSR-7


Magento рдиреЗ рдЕрднреА рддрдХ PSR-7 рдХреЛ рд▓рд╛рдЧреВ рдирд╣реАрдВ рдХрд┐рдпрд╛ рд╣реИ рдФрд░ рдмреЙрдХреНрд╕ рд╕реЗ рдмрд╛рд╣рд░ рдЕрдкрдиреЗ рдЕрдиреБрд░реЛрдз рдФрд░ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ, рд╡реЗ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдЬрд┐рдирдореЗрдВ рд╡реЗ рдореБрдЦреНрдп рд░реВрдк рд╕реЗ рдкрд┐рдЫрд▓реЗ рд╕рдВрд╕реНрдХрд░рдг рд╕реЗ рддреИрдпрд╛рд░ рдХрд┐рдП рдЧрдП рд╣реИрдВред


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


Magento рдореЗрдВ рдПрдХ рдРрд╕рд╛ рдмрд┐рдВрджреБ рд╣реИ, \ Magento \ рдлреНрд░реЗрдорд╡рд░реНрдХ \ AppInterface , рдХреЗрд╡рд▓ рдПрдХ рд╕рдорд╕реНрдпрд╛ рд╣реИ, рдЗрд╕ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХреЛ рдЕрдиреБрд░реЛрдз рд╕реНрд╡реАрдХрд╛рд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдбрд┐рдЬрд╝рд╛рдЗрди рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рд▓реЗрдХрд┐рди рд░реБрдХреЛ, рдпрд╣ рдЖрд╡реЗрджрди рдореЗрдВ рдХрд╣рд╛рдВ рд╕реЗ рдорд┐рд▓рддрд╛ рд╣реИ? рдпрд╣ рд╢реБрд░реБрдЖрдд рдореЗрдВ рд╡рд╛рдкрд╕ рдЬрд╛рдиреЗ рдХреЗ рд▓рд╛рдпрдХ рд╣реИ рдФрд░ рдордВрддреНрд░ - рдкреАрдПрдЪрдкреА рдорд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкреИрджрд╛ рд╣реБрдЖ рд╣реИ ред рддрджрдиреБрд╕рд╛рд░, рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ, рдкреИрдХреЗрдЬреЛрдВ рдФрд░ рдЪреМрдЦрдЯреЛрдВ рдХреЗ рд╡рд┐рд╢рд╛рд▓ рдмрд╣реБрдордд, рдЬрдм рдбрд┐рдЬрд╛рдЗрдирд┐рдВрдЧ рдФрд░ рдкрд░рддреЛрдВ рдореЗрдВ рд╡рд┐рднрд╛рдЬрд┐рдд рд╣реЛрддреЗ рд╣реИрдВ, рддреЛ рдмрд╕ рдпрд╣ рдирд╣реАрдВ рдорд╛рдирддреЗ рд╣реИрдВ рдХрд┐ рдЕрдиреБрд░реЛрдз рдПрдХ рд╕реЗ рдЕрдзрд┐рдХ рд╡реИрд╢реНрд╡рд┐рдХ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИред


Magento рдкрд░рд┐рд╡рд╣рди рдкрд░рдд рдПрдХ рд╣реА рд╕рд┐рджреНрдзрд╛рдВрдд рдкрд░ рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рд╣реИред рд╣рд╛рд▓рд╛рдБрдХрд┐ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝реАрдХрд░рдг рдЗрдВрдЬреЗрдХреНрдЯреЗрдмрд▓ / рдирдИ рд╡рд╕реНрддреБрдУрдВ рдХреЗ рдмреАрдЪ рдЕрдВрддрд░ рдХрд╛ рд╡рд░реНрдгрди рдХрд░рддрд╛ рд╣реИ , рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдХреНрд╡реЗрд░реА рдХрд╛ рдЙрдкрдпреЛрдЧ рдПрдХ рд╡реИрд╢реНрд╡рд┐рдХ рд╕реНрдЯреЗрдЯрдлрд╝реБрд▓ рд╕реЗрд╡рд╛ рдХреЗ рд░реВрдк рдореЗрдВ рд╣реИ, рдЬреЛ рд╡реИрд╢реНрд╡рд┐рдХ рдЪрд░ ($ _GET, $ _POST) рд╕реЗ рдЦреБрдж рдХреЛ рдЖрд░рдВрдн рдХрд░рддрд╛ рд╣реИред рдЗрди рд╕рднреА рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдЗрд╕ рд╕реЗрд╡рд╛ рдХреЗ рдЗрдВрдЬреЗрдХреНрд╢рди рдХреЛ рдХрд░реНрдиреЗрд▓ рдореЗрдВ рдЖрд╡реЗрджрди рдХреЗ рд╕рднреА рд╕реНрддрд░реЛрдВ рдкрд░ рджреЗрдЦрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдЕрдХреЗрд▓реЗ рддреАрд╕рд░реЗ рдкрдХреНрд╖ рдХреЗ рдореЙрдбреНрдпреВрд▓ рдХреА рдЧреБрдгрд╡рддреНрддрд╛ред


рдкреВрд░реНрд╡рдЧрд╛рдореА рдХреЗ рдЖрдзрд╛рд░ рдкрд░, PSR-7-рд╢реИрд▓реА рд╕реЗ Magento- рд╢реИрд▓реА рддрдХ рдЕрдиреБрд░реЛрдзреЛрдВ рдХреЗ рд░реВрдкрд╛рдВрддрд░рдг рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдХреЗрд╡рд▓ рд░реЛрдбрд░рдирд░ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреА рдЖрд╢рд╛ рдЦрд░реНрдЪ рдХреА рдЧрдИ рдереАред


PSR-7 рдПрдбреЙрдкреНрдЯрд░ рд▓рд╛рдЧреВ рдХрд░реЗрдВ


рд╣рдо рдкреНрд░рд╛рдкреНрдд рдЬрд╛рдирдХрд╛рд░реА рдХреЛ рдзреНрдпрд╛рди рдореЗрдВ рд░рдЦрддреЗ рд╣реБрдП рд╕рдорд╕реНрдпрд╛ рдХреЛ рддреИрдпрд╛рд░ рдХрд░рддреЗ рд╣реИрдВред
рдореИрдВ рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд рдЕрдиреБрдкреНрд░рдпреЛрдЧ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рд░рдЦрдирд╛ рдЪрд╛рд╣реВрдВрдЧрд╛ рдЬреЛ PSR-7 рдЕрдиреБрд░реЛрдз рд╕реНрд╡реАрдХрд╛рд░ рдХрд░рддрд╛ рд╣реИ рдФрд░ PSR-7 рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рджреЗрддрд╛ рд╣реИред рдореИрдЧреЗрдВрдЯреЛ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЗ рд▓рд┐рдП рдЗрд╕ рдЗрдВрдЯрд░реИрдХреНрд╢рди рдкреНрд░рд╛рд░реВрдк рдХреЛ рдЕрдкрдирд╛рдиреЗ рд╡рд╛рд▓реЗ рдмрдирд╛рдП рдЧрдП рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХрд╛ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХрд░рдирд╛ рднреА рдЖрд╡рд╢реНрдпрдХ рд╣реИред


PSR-7 рдПрдбрд╛рдкреНрдЯрд░
PSR-7 рдПрдбрд╛рдкреНрдЯрд░


рдЬреИрд╕рд╛ рдХрд┐ рдКрдкрд░ рдЙрд▓реНрд▓реЗрдЦ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдореИрдЧреЗрдВрдЯреЛ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдПрдХ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рджреЗрддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рд╣рдореЗрдВ рдХреЗрд╡рд▓ рдЗрд╕реЗ PSR-7 рдкреНрд░рд╛рд░реВрдк рдореЗрдВ рдмрджрд▓рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред


рдЕрдиреБрд░реЛрдз рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рдПрдХ рд╡рд░реНрдЧ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ рдЬреЛ рд╕рднреА рдХреЙрд▓ рдХреЛ рд╡рд░реНрддрдорд╛рди рдЕрдиреБрд░реЛрдз рдСрдмреНрдЬреЗрдХреНрдЯ рдкрд░ рд▓реЗ рдЬрд╛рддрд╛ рд╣реИ, рдЬрд┐рд╕реЗ рд╣рдо рдПрдХ рд╡рд┐рд╢реЗрд╖ рд░рдЬрд┐рд╕реНрдЯрд░ рдореЗрдВ рдбрд╛рд▓рддреЗ рд╣реИрдВ (рд╣рд╛рдВ, рд╡рд╛рд╕реНрддреБрдХрд▓рд╛ рдХреЗ рджреЗрд╡рддрд╛ рдЗрд╕ рд╡рд┐рдХреГрддрд┐ рдХреЛ рдорд╛рдл рдХрд░ рджреЗрдВрдЧреЗ)ред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдпрд╣ рдкрд╛рдпрд╛ рдЧрдпрд╛ рдХрд┐ рдЕрдиреБрд░реЛрдз рд╡рд░реНрдЧ рдореЗрдВ рдПрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рд▓реЗрдХрд┐рди 3, рдЗрд╕рд▓рд┐рдП рдЙрдиреНрд╣реЗрдВ рдХрдВрдЯреЗрдирд░ рдХреЗ IoC рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдлрд┐рд░ рд╕реЗ рдкрдВрдЬреАрдХреГрдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред


рдореИрдЧреЗрдВрдЯреЛ рдореЗрдВ рдкреНрд░рд╢реНрдиреЛрдВ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкреНрд░рдпреБрдХреНрдд рдХрдХреНрд╖рд╛рдУрдВ рдХрд╛ рд╕рдореВрд╣
рдореИрдЧреЗрдВрдЯреЛ рдореЗрдВ рдкреНрд░рд╢реНрдиреЛрдВ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкреНрд░рдпреБрдХреНрдд рдХрдХреНрд╖рд╛рдУрдВ рдХрд╛ рд╕рдореВрд╣


рдПрдХ undying PHP рдЖрд╡реЗрджрди рдХреА рд╕рдорд╕реНрдпрд╛рдПрдВ


рд░реЛрдбрд░рдирд░ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╢реБрд░реВ рдХрд┐рдП рдЧрдП рдПрдХ рдЖрд╡реЗрджрди рдореЗрдВ рдХрд┐рд╕реА рднреА рд▓рдВрдмреЗ рд╕рдордп рддрдХ рд░рд╣рдиреЗ рд╡рд╛рд▓реА php рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЗ рд╕рдорд╛рди рд╕рдорд╕реНрдпрд╛рдПрдВ рд╣реИрдВ, рд╡реЗ рдкреНрд░рд▓реЗрдЦрди ( https://roadrunner.dev/docs/usage-production ) рдореЗрдВ рд╡рд░реНрдгрд┐рдд рд╣реИрдВ


рдЕрдиреБрдкреНрд░рдпреЛрдЧ рд╕реНрддрд░ рдХреА рдореБрдЦреНрдп рд╕рдорд╕реНрдпрд╛рдПрдВ рдЬреЛ рдбреЗрд╡рд▓рдкрд░ рдХреЛ рдореЙрдирд┐рдЯрд░ рдХрд░рдиреА рдЪрд╛рд╣рд┐рдП:


  • рдореЗрдореЛрд░реА рд▓реАрдХ ( https://www.php.net/manual/ru/features.gc.php )
  • рдбреЗрдЯрд╛рдмреЗрд╕ рдХрдиреЗрдХреНрд╢рди (рдЕрдЪрд╛рдирдХ) рдХрд┐рд╕реА рднреА рдЕрдиреНрдп рдХреА рддрд░рд╣, рдЯрд╛рдЗрдордЖрдЙрдЯ рдореЗрдВ рдЧрд┐рд░ рд╕рдХрддреЗ рд╣реИрдВ
  • рд╕рдХреНрд╖рдо рд░рд╛рдЬреНрдп рдкреНрд░рдмрдВрдзрди

рдореИрдЧреЗрдВрдЯреЛ рдХреЗ рд╕рдВрджрд░реНрдн рдореЗрдВ рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдзреНрдпрд╛рди рд░рд╛рдЬреНрдп рдкреНрд░рдмрдВрдзрди рдХреЛ рджрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП, рдХреНрдпреЛрдВрдХрд┐ рдХрд░реНрдиреЗрд▓ рдФрд░ рддреГрддреАрдп-рдкрдХреНрд╖ рдореЙрдбреНрдпреВрд▓ рджреЛрдиреЛрдВ рдореЗрдВ, рд╡рд░реНрддрдорд╛рди рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ / рдЙрддреНрдкрд╛рдж / рд╢реНрд░реЗрдгреА рдХреЛ рд╕реЗрд╡рд╛ рдХреЗ рдЕрдВрджрд░ рдХреИрд╢рд┐рдВрдЧ рдХрд░рдирд╛ рдПрдХ рдмрд╣реБрдд рд╣реА рд╕рд╛рдорд╛рдиреНрдп рджреГрд╖реНрдЯрд┐рдХреЛрдг рд╣реИред


  protected function getCustomer(): ?CustomerInterface { if (!$this->customer) { if ($this->customerSession->isLoggedIn()) { $this->customer = $this->customerRepository->getById($this->customerSession->getCustomerId()); } else { return null; } } return $this->customer; } 

рдХрд┐рд╕реА рд╡рд╕реНрддреБ рдХреА рд╕реНрдерд┐рддрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдХрд░реНрдиреЗрд▓ рдХреА рд╡рд┐рдзрд┐ рдХрд╛ рдЙрджрд╛рд╣рд░рдгред


RoadRunner рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ Magento Rest API рд╕рд░реНрд╡рд░ рдЪрд▓рд╛рдирд╛


рд╡реИрд╢реНрд╡рд┐рдХ рд░рд╛рдЬреНрдп рдХреЗ рд╕рд╛рде рд╕рдВрднрд╛рд╡рд┐рдд рд╕рдорд╕реНрдпрд╛рдУрдВ рдХреЛ рджреЗрдЦрддреЗ рд╣реБрдП, Magento рдХреЗ рдлреНрд░рдВрдЯ-рдПрдВрдб рд╣рд┐рд╕реНрд╕реЗ рдХреЛ рд╡рд┐рдХрд╕рд┐рдд рдХрд░рдиреЗ рдХреЗ рдЕрдиреБрднрд╡ рдХреЗ рдЖрдзрд╛рд░ рдкрд░, рд▓реЙрдиреНрдЪ рдХреЗ рд▓рд┐рдП рд╕рдмрд╕реЗ рдЙрдкрдпреБрдХреНрдд рдФрд░ рджрд░реНрдж рд░рд╣рд┐рдд WebApi рднрд╛рдЧ рдХреЛ рдЪреБрдирд╛ рдЧрдпрд╛ рдерд╛ред


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


 $relay = new StreamRelay(STDIN, STDOUT); $psr7 = new PSR7Client(new Worker($relay)); $bootstrap = \Magento\Framework\App\Bootstrap::create(BP, []); /** @var \Magento\Framework\App\Http $app */ $app = $bootstrap->createApplication(\Magento\Framework\App\Http::class); /** @var ApplicationInterface $psr7Application */ $psr7Application = $bootstrap->getObjectManager()->create( \Isxam\M2RoadRunner\Application\MagentoAppWrapper::class, [ 'magentoApp' => $app ] ); while ($request = $psr7->acceptRequest()) { try { $response = $psr7Application->handle($request); $psr7->respond($response); } catch (\Throwable $e) { $psr7->getWorker()->error((string)$e); } } 

рдХреЛрдб рдХреЗ рдкрд╣рд▓реЗ рд▓реВрдк рдХреЛ рдХрд╛рд░реНрдпрдХрд░реНрддрд╛ рдХреА рд╢реБрд░реБрдЖрдд рдореЗрдВ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛, рдЬреЛ рдХрд┐ рд▓реВрдк рдХреЗ рдЕрдВрджрд░ рд╣реИ - рд╣рд░ рдирдП рдЕрдиреБрд░реЛрдз рдХреЗ рд╕рд╛рдеред


рдЬрдм рд╣рдорд╛рд░рд╛ рдХрд╛рд░реНрдпрдХрд░реНрддрд╛ рддреИрдпрд╛рд░ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рд╣рдо Go рдореЗрдВ рд▓рд┐рдЦреЗ рд░реЛрдбрд░рдирд░ рд╕рд░реНрд╡рд░ рдХреЛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдЧреЗ рдмрдврд╝рддреЗ рд╣реИрдВред рдпрд╣рд╛рдВ рд╕рдм рдХреБрдЫ рдЕрдЪреНрдЫрд╛ рдФрд░ рддреЗрдЬрд╝ рд╣реИ, рдХреЗрд╡рд▓ рдХрдВрдкреЛрдЬрд╝рд░ рдкреИрдХреЗрдЬ рдЬреЛ рдирд┐рд╖реНрдкрд╛рджрди рдпреЛрдЧреНрдп рдлрд╝рд╛рдЗрд▓ рдХреЛ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░рддрд╛ рд╣реИ, рдЙрд╕реЗ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ, рдЬреЛ рд╕реБрдЦрдж рдирд╣реАрдВ рд╣реЛ рд╕рдХрддрд╛ рд╣реИред рд╣рдо рдЕрдкрдиреЗ рд╕рд░реНрд╡рд░ рдХрд╛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдмрдирд╛рддреЗ рд╣реИрдВ - рд╕рдмрд╕реЗ рд╕рд░рд▓ рдПрдХ рдРрд╕рд╛ рдХреБрдЫ рджрд┐рдЦрддрд╛ рд╣реИред


 http: address: 0.0.0.0:8086 workers: command: "php worker.php" pool: numWorkers: 1 

рд░реЛрдбрд░рдирд░ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рдиред


рджрд╕реНрддрд╛рд╡реЗрдЬрд╝реАрдХрд░рдг рдореЗрдВ рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдХреА рдПрдХ рдмрд╣реБрддрд╛рдпрдд рд╣реЛрддреА рд╣реИ рдЬреЛ рдЖрдкрдХреЛ рд▓рдЪреАрд▓реЗ рдврдВрдЧ рд╕реЗ рд╕рд░реНрд╡рд░ рдХреЛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддреА рд╣реИ рддрд╛рдХрд┐ рдЖрдкрдХреЗ рдмрд╛рдЗрдирд░реА рдХреЛ рд╕рдВрдХрд▓рд┐рдд рдХрд░рдиреЗ рдХреА рдЗрдЪреНрдЫрд╛ рдмрд┐рд▓реНрдХреБрд▓ рди рд╣реЛред


 ./rr serve -v -d 

рд╕рд░реНрд╡рд░ рдкреНрд░рд╛рд░рдВрдн


рд╕рдорд╛рдзрд╛рди рдкрд░реАрдХреНрд╖рдг


рдЙрдкрдХрд░рдг


рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рдкрд░реАрдХреНрд╖рдг рдХреЗ рд▓рд┐рдП, рд╣рдо рдХреБрдЫ рд╕рд░рд▓ рд▓реЗрддреЗ рд╣реИрдВ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП artillery.ioред


рд╣рдо рдХреНрд░рдорд┐рдХ рд░реВрдк рд╕реЗ рдХреНрд╡реЗрд░реА рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдПрдХ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреА рдорджрдж рд╕реЗ рдкреНрд░рджрд░реНрд╢рди рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдХрд░реЗрдВрдЧреЗ (рд░реЛрдбрд░рдирд░ рднреА рдХрдИ рдереНрд░реЗрдбреНрд╕ рдореЗрдВ рдХреНрд╡реЗрд░реА рдирд┐рд╖реНрдкрд╛рджрди рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реИ, рд╣рдо рдЗрд╕ рдкреНрд░рд╢реНрди рдХреЛ рдЕрдиреНрдп рд╢реЛрдзрдХрд░реНрддрд╛рдУрдВ рдкрд░ рдЫреЛрдбрд╝ рджреЗрдВрдЧреЗ)


рдЗрдирдкреБрдЯ рдореЗрдВ, рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рджреЛ рд╡рд╛рддрд╛рд╡рд░рдгреЛрдВ рдХреЗ рд╕рд╛рде рдЖрд░реНрдЯрд┐рд▓рд░реА рдХреЙрдиреНрдлрд┐рдЧ рдлрд╛рдЗрд▓ рд╣реИ - рдЕрдкрд╛рдЪреЗ рдФрд░ рд░реЛрдбрд░рдирд░ред рд╡реЗ рджреЛрдиреЛрдВ рдПрдХ рд╣реА Magento рдЙрджрд╛рд╣рд░рдг рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рдпрд╣рд╛рдВ рд╡реЗ рдПрдХ рд╕рдорд╛рди рдкрд╛рдпрджрд╛рди рдкрд░ рд╣реИрдВред


рдкрд░реАрдХреНрд╖рдг рдкрд░рд┐рджреГрд╢реНрдп


рджреЛ рд╕рдорд╛рдзрд╛рдиреЛрдВ рдХреЗ рдкреНрд░рджрд░реНрд╢рди рдХреЛ рдорд╛рдкрдиреЗ рдХреЗ рд▓рд┐рдП рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдкрд░рд┐рджреГрд╢реНрдпреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред


рдкрд░рд┐рджреГрд╢реНрдп 1. рдПрдХ рд╢реНрд░реЗрдгреА рдмрдирд╛рдирд╛
  - name: "S1. Create category" flow: - loop: - post: url: "/rest/V1/categories" json: category: name: "name-{{prefix}}-{{ $loopCount }}" parent_id: 2 is_active: true count: 100 

рдкрд░рд┐рджреГрд╢реНрдп 2. рджреЗрд╢реЛрдВ рдХреА рд╕реВрдЪреА рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛
  - name: "S2. Countries list" flow: - loop: - get: url: "/rest/V1/directory/countries" count: 100 

рдкрд░рд┐рджреГрд╢реНрдп 3: рдЙрддреНрдкрд╛рдж рдкреНрд░рдХрд╛рд░ рд╕реВрдЪреАрдмрджреНрдз рдХрд░рдирд╛
  - name: "S3. Product types list" flow: - loop: - get: url: "/rest/V1/products/types" count: 100 

рдкрд░рд┐рджреГрд╢реНрдп 4. рд╡рд┐рд╢реЗрд╖рддрд╛ рд╕реЗрдЯ рдХреА рдПрдХ рд╕реВрдЪреА рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛
  - name: "S4. Product attribute sets list" flow: - loop: - get: url: "/rest/V1/products/attribute-sets/sets/list?searchCriteria" count: 100 

рдкрд░рд┐рджреГрд╢реНрдп 5. рдПрдХ рд╢реНрд░реЗрдгреА рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛
  - name: "S5. Category get" flow: - loop: - get: url: "/rest/V1/categories/2" count: 100 

рдкрд░рд┐рджреГрд╢реНрдп 6. рдЙрддреНрдкрд╛рдж рдирд┐рд░реНрдорд╛рдг
  - name: "S6. Create product" flow: - loop: - post: url: '/rest/V1/products' json: product: sku: "sku-{{prefix}}-{{ $loopCount }}" name: "name-{{prefix}}-{{ $loopCount }}" attribute_set_id: 4 price: 100 type_id: "simple" count: 100 

рдкрд░рд┐рджреГрд╢реНрдп 7. рдПрдХ рдЙрддреНрдкрд╛рдж рд╕реВрдЪреА рдХреЛ рдкреБрдирдГ рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛
  - name: "S7. Get product list" flow: - loop: - get: url: "/rest/V1/products?searchCriteria[pageSize]=20" count: 100 

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


рд░реЛрдбрд░рдирд░ рдФрд░ рдЕрдкрд╛рдЪреЗ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдмрд╛рд░реА-рдмрд╛рд░реА рд╕реЗ рд╕рднреА рд▓рд┐рдкрд┐рдпреЛрдВ рдХреЛ рдЪрд▓рд╛рдиреЗ рдХреЗ рдмрд╛рдж, рдХреНрд╡реЗрд░реА рдХреА рдЕрд╡рдзрд┐ рдХреЗ рдордзреНрдпрд╕реНрде рдкреНрд░рд╛рдкреНрдд рдХрд┐рдП рдЧрдП рдереЗред рдорд╛рдзреНрдпрдХреЛрдВ рдХреЗ рдЕрдиреБрд╕рд╛рд░, рд╕рднреА рдкрд░рд┐рджреГрд╢реНрдпреЛрдВ рдХреА рдЧрддрд┐ рд▓рдЧрднрдЧ ~ 50ms рдХреЗ рд╕рдорд╛рди рдореВрд▓реНрдп рд╕реЗ рднрд┐рдиреНрди рд╣реЛрддреА рд╣реИред


рдкреНрд░рджрд░реНрд╢рди рдкрд░реАрдХреНрд╖рд╛ рдкрд░рд┐рдгрд╛рдо
рдкреНрд░рджрд░реНрд╢рди рдкрд░реАрдХреНрд╖рд╛ рдкрд░рд┐рдгрд╛рдо


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


рд╣реИрдВрдбреНрд╕-рдСрди рдкреНрд░рдпреЛрдЧ рдиреЗ рд░реЛрдбрд░рдирд░ рдХреЗ рдкреНрд░рджрд░реНрд╢рди рдХреА рдирд┐рд░рдВрддрд░рддрд╛ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдорд╛рдиреНрдпрддрд╛рдУрдВ рдХреА рдкреБрд╖реНрдЯрд┐ рдПрдХ рд╡рд┐рд╢реЗрд╖ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдкрд░ рдХреАред рдЗрд╕ рдЙрдкрдХрд░рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рд╕реЗ рдЖрдк рдкрд░реНрдпрд╛рд╡рд░рдг рдФрд░ рдирд┐рд░реНрднрд░рддрд╛ рдХреЗ рдЖрд░рдВрднреАрдХрд░рдг рд╕рдордп рдХреЗ рдмрд░рд╛рдмрд░ рдирд┐рд░рдВрддрд░рддрд╛ рдХреЗ рд▓рд┐рдП рдЖрд╡реЗрджрди рдЕрдиреБрд░реЛрдзреЛрдВ рдХреЗ рдкреНрд░рд╕рдВрд╕реНрдХрд░рдг рдореЗрдВ рддреЗрдЬреА рд▓рд╛ рд╕рдХрддреЗ рд╣реИрдВред


рд╣рд▓реНрдХреЗ рд╣реИрдВрдбрд▓рд░ рдкрд░, рдпрд╣ рдЖрдкрдХреЛ рдХрдИ рдмрд╛рд░ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛ рдЧрддрд┐ рджреЗрдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ, рднрд╛рд░реА рд╣реЛрдиреЗ рдкрд░ рдпрд╣ рд▓рдЧрднрдЧ рдореВрд░реНрдд рдкреНрд░рднрд╛рд╡ рдирд╣реАрдВ рджреЗрддрд╛ рд╣реИред рдпрджрд┐ рдЖрдкрдХрд╛ рдХреЛрдб рдзреАрдорд╛ рд╣реИ, рддреЛ рд╕рдмрд╕реЗ рдЕрдзрд┐рдХ рд╕рдВрднрд╛рд╡рдирд╛ рд╣реИ рдХрд┐ рдкреНрд▓рд╛рдВрдЯреИрди рдЙрд╕рдХреА рдорджрдж рдирд╣реАрдВ рдХрд░реЗрдЧрд╛ред


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


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


рдЕрдВрдд рдореЗрдВ рдПрдХ рдЕрдЪреНрдЫрд╛ рд╕реНрдХреНрд░реАрдирд╢реЙрдЯред рдЬрдм рдЖрдк рдЕрднреА рднреА рдЗрд╕ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рд╕рдордп рдХреЗ рд╕рд╛рде Magento рдХреЗ рдЕрдиреБрд░реЛрдз рджреЗрдЦреЗрдВрдЧреЗ?

рдЭрдЯрдХрд╛


рд╕рдВрджрд░реНрдн


  1. рдЙрджрд╛рд╣рд░рдг рд▓реЗрдЦ рд╕реЗ
  2. рдЖрдзрд┐рдХрд╛рд░рд┐рдХ рд░реЛрдбрд░рдирд░ рд╡реЗрдмрд╕рд╛рдЗрдЯ

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


All Articles