рдореИрдВ рдЕрдкрдиреА рдореЛрд╣рд░рдмрдВрдж "рдмрд╛рдЗрдХ" рдХреЗ рд╕рд╛рде рдПрдкреАрдЖрдИ рдХрд╛ рд╡рд┐рдХрд╛рд╕ рдФрд░ рдкрд░реАрдХреНрд╖рдг рдХреИрд╕реЗ рдХрд░реВрдВ

рдкреАрдЯреАрдУ рдЬреЙрдиреНрд╕ рдПрдкреАрдЖрдИ HTTP JSON рдХреЗ рд╕реНрд╡рдд: рдкрд░реАрдХреНрд╖рдг рдХреЗ рд▓рд┐рдП рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд▓рд┐рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕рд░рд▓ рднрд╛рд╖рд╛ рд╣реИред

PieceofScript рдЖрдкрдХреЛ рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ:

  • рд▓рдЧрднрдЧ рдПрдХ рдкреНрд░рд╛рдХреГрддрд┐рдХ рднрд╛рд╖рд╛ рдореЗрдВ рд╡рд┐рдзрд┐ рдХреЗ рдирд╛рдо рдХреЗ рд╕рд╛рде YAML рдкреНрд░рд╛рд░реВрдк рдореЗрдВ рдПрдкреАрдЖрдИ рд╡рд┐рдзрд┐рдпреЛрдВ рдХрд╛ рд╡рд░реНрдгрди рдХрд░реЗрдВ, рдЬреЛ рдкрдврд╝рдиреЗ рдХреЗ рдкрд░реАрдХреНрд╖рдг рдХреЗ рд▓рд┐рдП рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рд╣реИ
  • YAML рдкреНрд░рд╛рд░реВрдк рдореЗрдВ рдореЙрдбрд▓ рдХрд╛ рд╡рд░реНрдгрди рдХрд░рдиреЗ рдФрд░ рдЙрдирд╕реЗ рдпрд╛рджреГрдЪреНрдЫрд┐рдХ рдбреЗрдЯрд╛ рдЙрддреНрдкрдиреНрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рдкреНрдд рд▓рдЪреАрд▓рд╛
  • рд╕рд░рд▓ рд╡рд╛рдХреНрдп рд░рдЪрдирд╛ рдХреЗ рд╕рд╛рде рдЖрд╕рд╛рдиреА рд╕реЗ рдкрдврд╝рдиреЗ рд╡рд╛рд▓реА рднрд╛рд╖рд╛ рдореЗрдВ рдЬрдЯрд┐рд▓ рдПрдкреАрдЖрдИ рдХреЙрд▓ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд▓рд┐рдЦреЗрдВ
  • JUnit рдФрд░ HTML рдкреНрд░рд╛рд░реВрдкреЛрдВ рдореЗрдВ рдкрд░реАрдХреНрд╖рд╛ рдкрд░рд┐рдгрд╛рдо рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВ

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

рдпрд╣рд╛рдБ рдХреНрдпрд╛ рдпрд╣ рдЖрдпрд╛ рд╣реИред



рджреБрднрд╛рд╖рд┐рдпрд╛ PHP рдореЗрдВ рд▓рд┐рдЦрд╛ рдЧрдпрд╛ рд╣реИ рдФрд░ рдПрдХ рдлрд╝рд╛рд░ рд╕рдВрдЧреНрд░рд╣ рд╣реИ, рдЗрд╕реЗ рд╕рдВрд╕реНрдХрд░рдг PHP 7.2 рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рд╣рд╛рд▓рд╛рдВрдХрд┐ рдпрд╣ 7.1 рдкрд░ рднреА рдХрд╛рдо рдХрд░ рд╕рдХрддрд╛ рд╣реИред рд╕реНрд░реЛрдд рдХреЛрдб рдФрд░ рдкреНрд░рд▓реЗрдЦрди https://github.com/maximw/PhewofScript рд╡рд┐рдХрд╛рд╕ рдореЗрдВ рдкреНрд░рд▓реЗрдЦрдиред рдпрд╣, рдЬреИрд╕рд╛ рдХрд┐ рдпрд╣ рдирд┐рдХрд▓рд╛, рд╕рдмрд╕реЗ рдХрдард┐рди рдФрд░ рдердХрд╛рдК рд╣рд┐рд╕реНрд╕рд╛ рд╣реИред

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

рдкрд░реАрдХреНрд╖рдг рдкрд░рд┐рдпреЛрдЬрдирд╛, рдЗрд╕рдХреА рд╕рдВрд░рдЪрдирд╛ рдФрд░ рдкреНрд░рдХреНрд╖реЗрдкрдг


рдкрд░рд┐рдпреЛрдЬрдирд╛ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдлрд╝рд╛рдЗрд▓реЛрдВ, рдПрдкреАрдЖрдИ рд╡рд┐рдзрд┐ рд╡рд┐рд╡рд░рдг рдлрд╝рд╛рдЗрд▓реЛрдВ рдФрд░ рдкрд░реАрдХреНрд╖рдг рдбреЗрдЯрд╛ рдЬрдирд░реЗрдЯрд░ рдХреЗ рд╕реЗрдЯ рдХреЗ рд╕рд╛рде рдПрдХ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рд╣реИред

рдиреНрдпреВрдирддрдо рд╕рдВрд╕реНрдХрд░рдг рдореЗрдВ, рдкрд░рд┐рдпреЛрдЬрдирд╛ рдЗрд╕ рддрд░рд╣ рджрд┐рдЦрддреА рд╣реИ:

./tests endpoints.yaml -  API generators.yaml -  start.pos -    

рд╕реНрдЯрд╛рд░реНрдЯрдЕрдк рдлрд╛рдЗрд▓ рд╡рд╣ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╣реИ рдЬрд┐рд╕рдореЗрдВ рд╕реЗ рдкрд░реАрдХреНрд╖рдг рдХреА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рд╢реБрд░реВ рд╣реЛрддреА рд╣реИред рдпрд╣ рд╕реНрдЯрд╛рд░реНрдЯрдЕрдк рдкрд░ рд╕реЗрдЯ рд╣реИ:

 pos.phar run ./start.pos --junit=junit_report.xml -vvv --config=config.yaml 

рд╕рднреА рд░рд┐рд╢реНрддреЗрджрд╛рд░ рдкрде рдХрд╛рдо рдХрд░рдиреЗ рд╡рд╛рд▓реА рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рд╕реЗ рдЖрд░рдВрднрд┐рдХ рдлрд╝рд╛рдЗрд▓ рд╕реЗ рдкрдврд╝реЗ рдЬрд╛рддреЗ рд╣реИрдВред
рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдлрд╝рд╛рдЗрд▓ рдХреЛ рдХрдорд╛рдВрдб рд▓рд╛рдЗрди рдкрд░ рд╡рд┐рдХрд▓реНрдк --config рдХреЗ рд╕рд╛рде рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдпрд╛ рдХрд╛рд░реНрдпрд╢реАрд▓ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдореЗрдВ config.yaml рд░рдЦрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рд╡реИрдХрд▓реНрдкрд┐рдХ рд╣реИ, рдЖрдкрдХреЛ рдЖрд╡рд╢реНрдпрдХрддрд╛рдиреБрд╕рд╛рд░ рд╡рд╣рд╛рдВ рдЪрдврд╝рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рд╡рд┐рдиреНрдпрд╛рд╕ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЕрдзрд┐рдХ ред

рдЯреЗрд╕реНрдЯ рд╕реНрдХреНрд░рд┐рдкреНрдЯ


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

рдпрд╣рд╛рдВ рдПрдХ рдХрд╛рд▓реНрдкрдирд┐рдХ рдордВрдЪ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕рд░рд▓ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЙрджрд╛рд╣рд░рдг рд╣реИ рдЬрд╣рд╛рдВ рд╡рд┐рднрд┐рдиреНрди рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рджреНрд╡рд╛рд░рд╛ рдПрдХ рдкреЛрд╕реНрдЯ рдмрдирд╛рдиреЗ рдФрд░ рдкрдврд╝рдиреЗ рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

 require "./globals.pos" //    ,  $domain include "./globals_local.pos" //     ,    include "./user/*.pos" //       ./user  ./post include "./post/*.pos" //       var $author = User() var $reader = User() var $banned = User() var $post = Post() Register $author //   API,     must $response.code == 201 //     Register $reader must $response.code == 201 Register $banned must $response.code == 201 Add $banned to blacklist of $author //$banned      $author Create post $post by $author //   API   must $response.code == 201 //    API   201 // ...,   ,       assert $response.body.post.content == $post.content var $postId = $response.body.post.id // Id     Read post $postId by $author //     must $response.code == 200 assert $response.body.post.content == $post.content Read post $postId by $reader //      must $response.code == 200 assert $response.body.post.content == $post.content Read post $postId by $banned //        assert $response.code == 404 

рд╣рд╛рдВ, рдпрд╣ рдмреИрдХрд▓рд╛рдЗрдЯрд┐рдВрдЧ рдХреЗ рдмрд┐рдирд╛ рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛ рдирд╣реАрдВ рд▓рдЧрддрд╛ рд╣реИред

рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреА рдкреНрд░рддреНрдпреЗрдХ рдкрдВрдХреНрддрд┐ рдПрдХ рдСрдкрд░реЗрдЯрд░ рд╕реЗ рд╢реБрд░реВ рд╣реЛрддреА рд╣реИ, рдпрд╛ рдПрдкреАрдЖрдИ рдкрджреНрдзрддрд┐ рдХреЗ рд▓рд┐рдП рдПрдХ рдХреЙрд▓ рд╣реИред рдпрджрд┐ рдЕрдЪрд╛рдирдХ рдПрдкреАрдЖрдИ рд╡рд┐рдзрд┐ рдХрд╛ рдирд╛рдо рдПрдХ рдРрд╕реЗ рд╢рдмреНрдж рд╕реЗ рд╢реБрд░реВ рд╣реЛрддрд╛ рд╣реИ рдЬреЛ рдХрд┐рд╕реА рдПрдХ рдСрдкрд░реЗрдЯрд░ рд╕реЗ рдореЗрд▓ рдЦрд╛рддрд╛ рд╣реИ, рддреЛ рдЖрдк " > " рдкреНрд░рддреАрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:

 >Include $user to group $userGroup 

рдСрдкрд░реЗрдЯрд░реНрд╕ рдХреЗрд╕ рдЕрд╕рдВрд╡реЗрджрдирд╢реАрд▓ рд╣реИрдВред рдореБрдЦрд░, ASSERT рдпрд╛ aSsErT (рд▓реЗрдХрд┐рди рдРрд╕рд╛ рдХреНрдпреЛрдВ рд▓рд┐рдЦреЗрдВ?) рдХрд╛рдо рдХрд░реЗрдЧрд╛ред
рдкреНрд░рддреНрдпреЗрдХ рд╕реНрдЯреЗрдЯрдореЗрдВрдЯ рдпрд╛ рдПрдкреАрдЖрдИ рд╡рд┐рдзрд┐ рдХреЙрд▓ рдПрдХ рдЕрд▓рдЧ рд▓рд╛рдЗрди рдкрд░ рд╣реЛрдиреА рдЪрд╛рд╣рд┐рдПред рдпрджрд┐ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХрд╛ рдЕрдВрддрд┐рдо рд╡рд░реНрдг \ (рд╣реИрд▓реЛ, рдкрд╛рдпрдерди) рд╣реИ рддреЛ рд▓рд╛рдЗрди рд░реИрдкрд┐рдВрдЧ рднреА рд╕рдВрднрд╡ рд╣реИред

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

 var $n = 20 var $i = 2 var $fib1 = 1; \ $fib2 = 1 while $i <= $n var $fib_sum = \ $fib2 + $fib1 print toString($i) + "  :" + \ toString($fib_sum) var $fib1 = $fib2 var $fib2 = $fib_sum var $i = $i + 1 

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

рдСрдкрд░реЗрдЯрд░реЛрдВ рдХреА рдкреВрд░реА рд╕реВрдЪреА


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

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

var $ рдЪрд░ 1 = рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ 1 ; $ рдЪрд░ 2 = рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ 2 ; ...; $ рдЪрд░ = рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐рдПрди - рдЪрд░ рдХреЗ рд▓рд┐рдП рдорд╛рди рдЕрд╕рд╛рдЗрди рдХрд░реЗрдВред рдпрджрд┐ рдЪрд░ рдкрд╣рд▓реЗ рд╕реЗ рдореМрдЬреВрдж рдирд╣реАрдВ рд╣реИ, рддреЛ рдЗрд╕реЗ рд╡рд░реНрддрдорд╛рди рд╕рдВрджрд░реНрдн рдореЗрдВ рдмрдирд╛рдпрд╛ рдЬрд╛рдПрдЧрд╛ред

$ рдЪрд░ 1 = рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ 1 рджреЗрдВ ; $ рдЪрд░ 2 = рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ 2 ; ...; $ рдЪрд░ = рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐рдПрди - рдЪрд░ рдХреЗ рд▓рд┐рдП рдорд╛рди рдЕрд╕рд╛рдЗрди рдХрд░реЗрдВред рдпрджрд┐ рдЪрд░ рд╡рд░реНрддрдорд╛рди рд╕рдВрджрд░реНрдн рдореЗрдВ рдирд╣реАрдВ рд╣реИ, рддреЛ рд╡реИрд╢реНрд╡рд┐рдХ рд╕рдВрджрд░реНрдн рдореЗрдВ рдЪрд░ рдХреЛ рдмрдирд╛рдиреЗ рдпрд╛ рд╕рдВрд╢реЛрдзрд┐рдд рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рд╣реЛрдЧрд╛ред

const $ const1 = рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ 1 ; $ const2 = рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ 2 ; ...; $ constN = рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐рдПрди - рд╡рд░реНрддрдорд╛рди рд╕рдВрджрд░реНрдн рдореЗрдВ рд╕реНрдерд┐рд░рд╛рдВрдХ рдХрд╛ рдорд╛рди рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░реЗрдВред рд╕реНрдерд┐рд░рд╛рдВрдХ рдФрд░ рдЪрд░ рдХреЗ рдмреАрдЪ рдХрд╛ рдЕрдВрддрд░ рдХреЗрд╡рд▓ рдЗрддрдирд╛ рд╣реИ рдХрд┐ рдЙрдиреНрд╣реЗрдВ рдмрджрд▓рд╛ рдирд╣реАрдВ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ; рдЬрдм рдЖрдк рдХрд┐рд╕реА рдореВрд▓реНрдп рдХреЛ рд╕реНрдерд┐рд░ рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдШреЛрд╖рдгрд╛ рдХреЗ рдмрд╛рдж рдПрдХ рдЪреЗрддрд╛рд╡рдиреА рдЬрд╛рд░реА рдХреА рдЬрд╛рдПрдЧреАред рдпрджрд┐ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рд╕рдорд╛рди рдирд╛рдо рд╡рд╛рд▓рд╛ рдХреЛрдИ рдЪрд░ рд╣реИ, рддреЛ рдЗрд╕реЗ рд╕реНрдерд┐рд░ рдШреЛрд╖рд┐рдд рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░рддреЗ рд╕рдордп рдПрдХ рддреНрд░реБрдЯрд┐ рдЙрддреНрдкрдиреНрди рд╣реЛрдЧреАред рдЕрдиреНрдпрдерд╛, рдЪрд░ рдХреЗ рд▓рд┐рдП рд╕рдЪ рд╣реИ рдХрд┐ рд╕рдм рдХреБрдЫ рднреА рд╕реНрдерд┐рд░рд╛рдВрдХ рдХреЗ рд▓рд┐рдП рд╕рдЪ рд╣реИред

рдЖрдпрд╛рдд $ рдЪрд░ 1 ; $ рдЪрд░ 2 ; ...; $ variableN - рд╡реИрд╢реНрд╡рд┐рдХ рд╕рдВрджрд░реНрднреЛрдВ рд╕реЗ рд╡рд░реНрддрдорд╛рди рд╕рдВрджрд░реНрдн рдХреЗ рд▓рд┐рдП рдЪрд░ рдХреА рдкреНрд░рддрд┐рдпрд╛рдВред рдпрд╣ рдЙрдкрдпреЛрдЧреА рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдпрджрд┐ рдЖрдкрдХреЛ рдПрдХ рд╡реИрд╢реНрд╡рд┐рдХ рдЪрд░ рдХреЗ рдореВрд▓реНрдп рдкрд░ рдХрд╛рдо рдХрд░рдирд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЗрд╕реЗ рдмрджрд▓рдирд╛ рдирд╣реАрдВ рд╣реИред

testcase testCaseName - рдПрдХ рдкрд░реАрдХреНрд╖рдг рдорд╛рдорд▓реЗ рдХреА рдШреЛрд╖рдгрд╛ рдХрд░рддрд╛ рд╣реИ, рдЬрд┐рд╕реЗ рдмрд╛рдж рдореЗрдВ рд░рди рд╕реНрдЯреЗрдЯрдореЗрдВрдЯ рдХреЗ рд╕рд╛рде рдПрдХ рдЗрдХрд╛рдИ рдХрд╣рд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдмрд╛рдж рдореЗрдВ рд▓реЗрдЦ рдореЗрдВ рдкрд░реАрдХреНрд╖рдг рдХреЗ рдорд╛рдорд▓реЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдФрд░ рдкрдврд╝реЗрдВ ред

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

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

рдЪрд▓рд╛рдПрдБ testCaseName - рдирд┐рд╖реНрдкрд╛рджрди рдХреЗ рд▓рд┐рдП рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдкрд░реАрдХреНрд╖рдг рдХреЗрд╕ рдЪрд▓рд╛рдПрдБред рдкрд░реАрдХреНрд╖рдг рдХреЗ рдирд╛рдо рдХреЛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд┐рдП рдмрд┐рдирд╛ рдЪрд▓рд╛рдиреЗ рд╕реЗ рд╕рднреА рдШреЛрд╖рд┐рдд рдкрд░реАрдХреНрд╖рдг рдорд╛рдорд▓реЗ рд╢реБрд░реВ рд╣реЛ рдЬрд╛рдПрдВрдЧреЗ рдЬрд┐рдиреНрд╣реЗрдВ рдЙрдирдХреЗ рдШреЛрд╖рдгрд╛ рдХреЗ рдХреНрд░рдо рдореЗрдВ рддрд░реНрдХ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИред

рдЬрдмрдХрд┐ рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ - рдПрдХ рд▓реВрдк, рдЬрдмрдХрд┐ рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ рд╕рд╣реА рд╣реИ, рдХрдерди рдХреЛ рдЕрдзрд┐рдХ рд╕реЗ рдЕрдзрд┐рдХ рдЗрдВрдбреЗрдВрдЯреЗрдб рд▓рд╛рдЗрдиреЛрдВ рдХреЗ рд╕рд╛рде рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рддрд╛ рд╣реИред

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

рдЕрдЧрд░ рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ - рдЕрдЧрд░ рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ рд╕рдЪ рд╣реИ, рддреЛ рдЕрдЧрд░ рд╕реЗ рдЕрдзрд┐рдХ рдЗрдВрдбреЗрдВрдЯреЗрдб рд▓рд╛рдЗрдиреЛрдВ рдХреЗ рд╕рд╛рде рдмрдпрд╛рди рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рддрд╛ рд╣реИ

рдкреНрд░рд┐рдВрдЯ рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ 1 ; рдПрдХреНрд╕рдкреНрд░реЗрд╢рди 2 ; ... рдПрдХреНрд╕рдкреНрд░реЗрд╢рди рдПрди - рдПрдХреНрд╕рдкреНрд░реЗрд╢рди рдХреЗ рдорд╛рди рдХреЛ рдкреНрд░рд┐рдВрдЯрдЖрдЙрдЯ рдореЗрдВ рдкреНрд░рд┐рдВрдЯ рдХрд░реЗрдВред рдпрд╣ рдбрд┐рдмрдЧрд┐рдВрдЧ рдХреЗ рд▓рд┐рдП рдЗрд╕реНрддреЗрдорд╛рд▓ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдпрд╣ рдХреЗрд╡рд▓ " рдмрд╛рддреВрдиреАрдкрди " рдХреЗ рд╕реНрддрд░ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ --verbosity = 1 рдпрд╛ -v рдФрд░ рдЕрдзрд┐рдХред

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

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

рд░рджреНрдж - рдЕрдВрдд рдкрд░реАрдХреНрд╖рдгред рджреБрднрд╛рд╖рд┐рдпрд╛ рдХрд╛рдо рдЦрддреНрдо рдХрд░рддрд╛ рд╣реИ, рд░рд┐рдкреЛрд░реНрдЯ рдмрдирд╛рддрд╛ рд╣реИред

рдПрдкреАрдЖрдИ рдЯреЗрд╕реНрдЯ рдХреЗ рддрд░реАрдХреЗ


рдпрд╣ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЖрдкрдХреЛ рдкрд░реАрдХреНрд╖рдг рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ - рдХреБрдЫ рдорд╛рдкрджрдВрдбреЛрдВ рдХреЗ рд╕рд╛рде рдХреЙрд▓ рдХрд░реЗрдВ рдФрд░ рдЬрд╛рдВрдЪреЗрдВ рдХрд┐ рдЙрддреНрддрд░ рдЙрдореНрдореАрджреЛрдВ рдкрд░ рдЦрд░рд╛ рдЙрддрд░рддрд╛ рд╣реИ рдпрд╛ рдирд╣реАрдВред

рдПрдкреАрдЖрдИ рддрд░реАрдХреЛрдВ рдХреЛ YAML рдкреНрд░рд╛рд░реВрдк рдореЗрдВ рд╡рд░реНрдгрд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ, рд╡рд┐рд╡рд░рдг рд╡рд░реНрддрдорд╛рди рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдХреА рдПрдВрдбрдкреЙрдЗрдВрдЯ.рдпреВрдорд▓ рдлрд╝рд╛рдЗрд▓ рдФрд░ /ред рдпрд╛ .yam рдлрд╝рд╛рдЗрд▓реЛрдВ рдореЗрдВ рдЗрд╕рдХреА ./endpoints рдЙрдкрдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдореЗрдВ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред рдкрд░реАрдХреНрд╖рдг рд╕реЗ рдкрд╣рд▓реЗ, рджреБрднрд╛рд╖рд┐рдпрд╛ рдЗрди рд╕рднреА рдлрд╛рдЗрд▓реЛрдВ рдХреЛ рдПрдХ рд╕рд╛рде рдкрдврд╝рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░реЗрдЧрд╛ред

рдЙрджрд╛рд╣рд░рдг рд╕рдорд╛рдкрди рдмрд┐рдВрджреБред рд╢реНрдпрд╛рдо рд╕рдВрд░рдЪрдирд╛:

 Auth $user: method: "POST" url: $domain + "/login" headers: Content-Type: "application/json" format: "json" data: login: $user.login password: $user.password after: - assert $response.code == 200 - let $user.auth_token = $response.body.auth_token Create post $post by $user: method: "POST" url: $domain + "/posts" format: "json" data: $post headers: auth: "Bearer " + $user.auth_token content-type: "application/json" after: - assert $response.code == 201 Read post $postId by $user: method: "GET" url: $domain + "/posts/" + $postId headers: auth: "Bearer " + $user.auth_token content-type: "application/json" after: - assert ($response.code == 200) || ($response.code == 404) Create comment $comment on $post by $user: method: "POST" url: $domain + "/comments/create/" + $post.id format: "json" data: $comment headers: auth: "Bearer " + $user.auth_token content-type: "application/json" after: - assert $response.code == 201 

рдПрдкреАрдЖрдИ рд╡рд┐рдзрд┐ (YAML рд╕рдВрд░рдЪрдирд╛ рдХрд╛ рд╢реАрд░реНрд╖ рд╕реНрддрд░) рдЬрд┐рд╕рдХреЗ рджреНрд╡рд╛рд░рд╛ рдЗрд╕реЗ рдХрд╣рд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рд▓рдЧрднрдЧ рдПрдХ рдордирдорд╛рдиреЗ рдкреНрд░рд╛рд░реВрдк рдореЗрдВ рдПрдХ рд╕реНрдЯреНрд░рд┐рдВрдЧ рд╣реИред

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

рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдирд╛рдо рдореЗрдВ рдХрд╣реАрдВ рднреА рдЖрдк рдбрдмрд▓ рдШреБрдВрдШрд░рд╛рд▓реЗ рдмреНрд░реИрдХреЗрдЯ рдореЗрдВ рд╡реИрдХрд▓реНрдкрд┐рдХ рд╡рд┐рдзрд┐ рдорд╛рди рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

 Get comments of $post {{$page=1; $perPage=$defaultGlobalPageSize}}: method: "GET" url: $domain + "/comments/" + $post.id query: page: $page per_page: $perPage headers: auth: "Bearer " + $user.auth_token content-type: "application/json" after: - assert $response.code == 200 

рд╡реИрдХрд▓реНрдкрд┐рдХ рдорд╛рди рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐рдпреЛрдВ рдореЗрдВ, рд╡реИрд╢реНрд╡рд┐рдХ рд╕рдВрджрд░реНрдн рдЪрд░ рдЙрдкрд▓рдмреНрдз рд╣реИрдВред
рд╡реИрдХрд▓реНрдкрд┐рдХ рдореВрд▓реНрдп рдЙрдкрдпреЛрдЧреА рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВ рддрд╛рдХрд┐ рдЖрдк рд╣рд░ рдмрд╛рд░ рдПрдкреАрдЖрдИ рдкрджреНрдзрддрд┐ рдХреЛ рдХреЙрд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдиреНрд╣реЗрдВ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рди рдХрд░реЗрдВред рдпрджрд┐ рдкреГрд╖реНрда рдХрд╛ рдЖрдХрд╛рд░ рдХреЗрд╡рд▓ рдПрдХ рд╣реА рд╕реНрдерд╛рди рдкрд░ рдмрджрд▓рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рддреЛ рдЗрд╕реЗ рдЕрдиреНрдп рд╕рднреА рд╕реНрдерд╛рдиреЛрдВ рдкрд░ рдХреНрдпреЛрдВ рдЗрдВрдЧрд┐рдд рдХрд░реЗрдВ? рдЗрд╕ рдкрджреНрдзрддрд┐ рдХреЗ рд▓рд┐рдП рдХреЙрд▓ рдХреЗ рдЙрджрд╛рд╣рд░рдг:

 Get comments of $newPost //     $page  $perPage Get comments of $newPost {{$page=$currentPage+1}} Get comments of {$newPost} {{$perPage=10;$page=100}} 

рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЧрдП рд╢реЗрд╖ рдЪрд░ (рдЙрдкрд░реЛрдХреНрдд рдЙрджрд╛рд╣рд░рдг рдореЗрдВ $ рдбреЛрдореЗрди ) рдХреЛ рд╡реИрд╢реНрд╡рд┐рдХ рд╕рдВрджрд░реНрдн рд╕реЗ рд▓рд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред рдореИрдВ рдЖрдкрдХреЛ рдмрд╛рдж рдореЗрдВ рд╕рдВрджрд░реНрднреЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЕрдзрд┐рдХ рдмрддрд╛рдКрдВрдЧрд╛ред

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

рдорд╣рддреНрд╡рдкреВрд░реНрдг рдиреЛрдЯред YAML рдкреНрд░рд╛рд░реВрдк рдЖрдкрдХреЛ рдЙрджреНрдзрд░рдг рдЪрд┐рд╣реНрдиреЛрдВ рдореЗрдВ рддрд╛рд░ рд╕рдВрд▓рдЧреНрди рдирд╣реАрдВ рдХрд░рдиреЗ рджреЗрддрд╛ рд╣реИред рд▓реЗрдХрд┐рди рджреБрднрд╛рд╖рд┐рдпрд╛ рдХреЗ рд▓рд┐рдП, рдЙрджреНрдзрд░рдг рдХреЗ рдмрд┐рдирд╛ рдПрдХ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдПрдХ рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ рд╣реИ рдЬрд┐рд╕рдХрд╛ рдореВрд▓реНрдпрд╛рдВрдХрди рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдПрдХ url: http://example.com/login рдШреЛрд╖рдгрд╛ url: http://example.com/login рдлрд╝реАрд▓реНрдб рдореЗрдВ рдирд┐рд╖реНрдкрд╛рджрди рдХреЗ рджреМрд░рд╛рди рдПрдХ рд╕рд┐рдВрдЯреИрдХреНрд╕ рддреНрд░реБрдЯрд┐ рд╣реЛрдЧреАред рдЗрд╕рд▓рд┐рдП, рдпрд╣ рд╕рд╣реА рд╣реЛрдЧрд╛: url: "http://example.com/login" рдпрд╛ url: "http://"+$domain+"/login"

рдПрдкреАрдЖрдИ рд╡рд┐рдзрд┐ рд╡рд┐рд╡рд░рдг рдлрд╝реАрд▓реНрдб


рд╡рд┐рдзрд┐ - рдЖрд╡рд╢реНрдпрдХ HTTP рд╡рд┐рдзрд┐

url - рд╡рд╛рд╕реНрддрд╡рд┐рдХ URL, рдЖрд╡рд╢реНрдпрдХ

рд╣реЗрдбрд░ - HTTP рд╣реЗрдбрд░ рдХреА рд╕реВрдЪреА, рд╡реИрдХрд▓реНрдкрд┐рдХ

рдХреБрдХреАрдЬрд╝ - рд╡реИрдХрд▓реНрдкрд┐рдХ рдХреБрдХреА рд╕реВрдЪреА

HTTP - HTTP рдкреНрд░рдорд╛рдгреАрдХрд░рдг рдХреЗ рд▓рд┐рдП рдбреЗрдЯрд╛, рд╡реИрдХрд▓реНрдкрд┐рдХ

 auth: login: $login password: $password type: "basic" //  "digest"  "ntlm", - "basic" 

рдХреНрд╡реЗрд░реА - URL рдорд╛рдкрджрдВрдбреЛрдВ рдХреА рдПрдХ рд╕реВрдЪреА, рд╡реИрдХрд▓реНрдкрд┐рдХ

рдкреНрд░рд╛рд░реВрдк - рдореВрд▓реНрдпреЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ:

  • рдХреЛрдИ рдирд╣реАрдВ - рдЕрдиреБрд░реЛрдз рдХрд╛ рдХреЛрдИ рд╢рд░реАрд░ рдирд╣реАрдВ рд╣реИ
  • json - JSON рдХреЛ рднреЗрдЬреЗрдВ
  • рдХрдЪреНрдЪреЗ - рд╕реНрдЯреНрд░рд┐рдВрдЧ рднреЗрдЬреЗрдВ "рдЬреИрд╕рд╛ рд╣реИ"
  • рдлреЙрд░реНрдо - рдЖрд╡реЗрджрди / x-www-form-urlencoded рдкреНрд░рд╛рд░реВрдк рдореЗрдВ
  • рдорд▓реНрдЯреАрдкрд╛рд░реНрдЯ - рдорд▓реНрдЯреАрдкрд╛рд░реНрдЯ / рдлреЙрд░реНрдо-рдбреЗрдЯрд╛ рдлреЙрд░реНрдореЗрдЯ рдореЗрдВ

рд╡реИрдХрд▓реНрдкрд┐рдХ, рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдХреЛрдИ рдирд╣реАрдВ

рдбреЗрдЯрд╛ - рдЕрдиреБрд░реЛрдз рдирд┐рдХрд╛рдп, рдкреНрд░рд╛рд░реВрдк рдореЗрдВ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдкреНрд░рд╛рд░реВрдк рдореЗрдВ рднреЗрдЬрд╛ рдЬрд╛рдПрдЧрд╛, рд╡реИрдХрд▓реНрдкрд┐рдХ

  • рдХрд┐рд╕реА рдХреЗ рд▓рд┐рдП рднреА - рдбреЗрдЯрд╛ рдкреНрд░рд╛рд░реВрдк рдЕрдиреБрдкрд╕реНрдерд┐рдд рд╣реЛ рд╕рдХрддрд╛ рд╣реИ, рдпрджрд┐ рдореМрдЬреВрдж рд╣реИ, рддреЛ рдЙрд╕реЗ рдЕрдирджреЗрдЦрд╛ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛
  • Json рдкреНрд░рд╛рд░реВрдк рдХреЗ рд▓рд┐рдП, рдХреЛрдИ рднреА рдореВрд▓реНрдп
  • рдХрдЪреНрдЪреЗ рдкреНрд░рд╛рд░реВрдк рдХреЗ рд▓рд┐рдП, рдХреЛрдИ рднреА рд╕реНрдХреЗрд▓рд░ рдорд╛рди
  • рдкреНрд░рдкрддреНрд░ рдкреНрд░рд╛рд░реВрдк рдХреЗ рд▓рд┐рдП, рдПрдХ рд╕рд░рдгреА рдЬрд┐рд╕рдХрд╛ рдХреБрдВрдЬреА рдХреНрд╖реЗрддреНрд░ рдирд╛рдо рд╣реИрдВ:

     data: login: "Bob" password: $password remember_me: 1 
  • рдорд▓реНрдЯреАрдкрд╛рд░реНрдЯ рдкреНрд░рд╛рд░реВрдк рдХреЗ рд▓рд┐рдП, рдирд┐рдореНрди рд╕рдВрд░рдЪрдирд╛ рдХреА рдПрдХ рд╕рд░рдгреА:

     data: user_id: value: 42 headers: X-Baz: "bar" avatar: file: "/path/to/file" photo: file: "http://url.to/file" filename: "custom_filename.jpg" 

рдлрд╝рд╛рдЗрд▓ рдлрд╝реАрд▓реНрдб рдореЗрдВ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдлрд╝рд╛рдЗрд▓реЗрдВ рдкрдврд╝рдиреЗ рдпреЛрдЧреНрдп рд╣реЛрдиреА рдЪрд╛рд╣рд┐рдПред рдпрджрд┐ рдХреЛрдИ URL рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рддреЛ php.ini рдореЗрдВ allow_url_fopen рдХреЛ рд╕рдХреНрд╖рдо рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП

рдкрд╣рд▓реЗ - рдмрдпрд╛рди рдЬреЛ HTTP рдЕрдиреБрд░реЛрдз, рд╡реИрдХрд▓реНрдкрд┐рдХ рд╕реЗ рдкрд╣рд▓реЗ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд┐рдП рдЬрд╛рдПрдВрдЧреЗ

рдХреЗ рдмрд╛рдж - рдмрдпрд╛рди рдЬреЛ HTTP рдЕрдиреБрд░реЛрдз, рд╡реИрдХрд▓реНрдкрд┐рдХ рдХреЗ рдмрд╛рдж рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛

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

рдПрдкреАрдЖрдИ рд╡рд┐рдзрд┐ рдХреЙрд▓


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

 Create comment $comments.1 on {$newPost} by {$postAuthor} 

рдпрджрд┐ рдкреИрд░рд╛рдореАрдЯрд░ рдШреБрдВрдШрд░рд╛рд▓реЗ рдмреНрд░реИрдХреЗрдЯ рдореЗрдВ рд╕рдВрд▓рдЧреНрди рд╣реИ, рддреЛ рдЗрд╕реЗ рдореВрд▓реНрдп рд╕реЗ рдкрд╛рд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ - рдЗрд╕ рддрд░рд╣ рдЖрдк рдХрд┐рд╕реА рднреА рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ рдХреЛ рдкрд╛рд░рд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдпрджрд┐ рдЖрдк рдШреБрдВрдШрд░рд╛рд▓реЗ рдХреЛрд╖реНрдардХ рдХреЗ рдмрд┐рдирд╛ рдПрдХ рдкреИрд░рд╛рдореАрдЯрд░ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдЗрд╕реЗ рд╕рдВрджрд░реНрдн рджреНрд╡рд╛рд░рд╛ рдкрд╛рд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ - рдпрд╣ рдХреЗрд╡рд▓ рд╕рд░рдгреА рддрддреНрд╡реЛрдВ рдХреЗ рд▓рд┐рдП рдЪрд░ рдФрд░ рд╕реНрдерд┐рд░ рдкрд╣реБрдВрдЪ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ (рдПрдХ рдЕрд╡рдзрд┐ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ, рд▓реЗрдХрд┐рди рдХреЛрд╖реНрдардХ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдирд╣реАрдВ]]ред

 Create comment {$comments[$i]} on $posts.0 by $users.1 Read post {123} by $user Get comments of $users.1.id {{$page = 2}} 

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

$ рдЕрдиреБрд░реЛрдз рд╕рдВрд░рдЪрдирд╛


$ request.method - рд╕реНрдЯреНрд░рд┐рдВрдЧ - HTTP рд╡рд┐рдзрд┐
$ request.url - рд╕реНрдЯреНрд░рд┐рдВрдЧ - рдЕрдиреБрд░реЛрдзрд┐рдд URL
$ request.query - рд╕рд░рдгреА - GET рдорд╛рдкрджрдВрдбреЛрдВ рдХреА рдПрдХ рд╕реВрдЪреА
$ request.headers - рдРрд░реЗ - рдЕрдиреБрд░реЛрдз рд╣реЗрдбрд░ рдХреА рд╕реВрдЪреА
$ request.cookies - рд╕рд░рдгреА - рдХреБрдХреАрдЬрд╝ рд╕реВрдЪреА
$ reuqest.auth - Array рдпрд╛ Null - HTTP рдкреНрд░рдорд╛рдгреАрдХрд░рдг рдХреЗ рд▓рд┐рдП рдбреЗрдЯрд╛
$ request.format - рд╕реНрдЯреНрд░рд┐рдВрдЧ - рдЕрдиреБрд░реЛрдз рдбреЗрдЯрд╛ рдкреНрд░рд╛рд░реВрдк
$ request.data - рдХрд┐рд╕реА рднреА рдкреНрд░рдХрд╛рд░ - рдбреЗрдЯрд╛ рдХреНрд╖реЗрддреНрд░ рдореЗрдВ рдЧрдгрдирд╛ рдХреА рдЧрдИ рдереА

$ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рд╕рдВрд░рдЪрдирд╛


$ response.network - рдмреВрд▓рд┐рдпрди - рдЧрд▓рдд рдЕрдЧрд░ рддреНрд░реБрдЯрд┐ HTTP рдХреЗ рдиреАрдЪреЗ рдиреЗрдЯрд╡рд░реНрдХ рд╕реНрддрд░ рдкрд░ рдереА
$ response.code - рд╕рдВрдЦреНрдпрд╛ рдпрд╛ рдЕрд╢рдХреНрдд - рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдХреЛрдб, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, 200 рдпрд╛ 404
$ response.status - рд╕реНрдЯреНрд░рд┐рдВрдЧ рдпрд╛ рдЕрд╢рдХреНрдд - рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдХреА рд╕реНрдерд┐рддрд┐, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, "204 рдХреЛрдИ рд╕рд╛рдордЧреНрд░реА рдирд╣реАрдВ" рдпрд╛ "401 рдЕрдирдзрд┐рдХреГрдд"
$ response.headers - рд╕рд░рдгреА - рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рд╣реЗрдбрд░ рдХреА рд╕реВрдЪреА, рд╣реЗрдбрд░ рдХреЗ рдирд╛рдо рд▓реЛрдЕрд░рдХреЗрд╕ рд╣реИрдВ
$ response.cookies - рд╕рд░рдгреА - рдХреБрдХреАрдЬрд╝ рд╕реВрдЪреА
$ response.body - рдХрд┐рд╕реА рднреА рдкреНрд░рдХрд╛рд░ - рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдирд┐рдХрд╛рдп рдХреЛ JSON рдХреЗ рд░реВрдк рдореЗрдВ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдЕрдЧрд░ рдкрд╛рд░реНрд╕ рдХрд░рдиреЗ рдХреЗ рджреМрд░рд╛рди рдХреЛрдИ рддреНрд░реБрдЯрд┐ рдереА, рддреЛ рд╢рд░реАрд░ рддрддреНрд╡ рдмрд┐рд▓реНрдХреБрд▓ рдореМрдЬреВрдж рдирд╣реАрдВ рд╣реЛрдЧрд╛: @response.body == null ( рдЪрд░ рдХреЗ рдЕрд╕реНрддрд┐рддреНрд╡ рдХреА рдЬрд╛рдБрдЪ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ )
$ response.raw - рд╕реНрдЯреНрд░рд┐рдВрдЧ рдпрд╛ рдирд▓ - рдХрдЪреНрдЪреА рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рд╢рд░реАрд░
$ response.duration - рд╕рдВрдЦреНрдпрд╛ рд▓рд┐рдЦреЗрдВ - рд╕реЗрдХрдВрдб рдореЗрдВ рдЕрдиреБрд░реЛрдз рдХреА рдЕрд╡рдзрд┐

рдореЙрдбрд▓ рдФрд░ рдкрд░реАрдХреНрд╖рдг рдбреЗрдЯрд╛ рдХреА рдкреАрдврд╝реА


рдЬрдирд░реЗрдЯрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдореЙрдбрд▓ рдХрд╛ рд╡рд░реНрдгрди рдХрд░рдиреЗ рдФрд░ рдЙрдирд╕реЗ рдкрд░реАрдХреНрд╖рдг рдбреЗрдЯрд╛ рдЙрддреНрдкрдиреНрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред YAML рдкреНрд░рд╛рд░реВрдк рдореЗрдВ рд╡рд┐рд╡рд░рдг рдЬрдирд░реЗрдЯрд░реЛрдВ рдореЗрдВ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред рд╡рд░реНрдХрд┐рдВрдЧ рдбрд╛рдпрд░реЗрдХреНрдЯрд░реА рдФрд░ / рдпрд╛ * .yaml рдлрд╛рдЗрд▓реЛрдВ рдореЗрдВ ./generators рдЙрдкрдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдореЗрдВ рдлрд╝рд╛рдЗрд▓ред

 User: body: login: Faker\login() name: Faker\name() email: Faker\email() password: Faker\text(16) child: Child() birthday: dateFormat(Faker\datetime(), "U") settings: notifications_enabled: Faker\boolean() Child: body: name: Faker\name() gender: Faker\integer(1, 2) age: Faker\integer(0, 18) Comment($user): body: content: "Hi! I'm " + $user.name tags: - "tag1" - "tag2" 

рдЙрдкрд░реЛрдХреНрдд рдЙрджрд╛рд╣рд░рдг рдореЗрдВ, рддреАрди рдЬрдирд░реЗрдЯрд░ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ () , рдмрд╛рд▓ (), рдФрд░ рдЯрд┐рдкреНрдкрдгреА () рдШреЛрд╖рд┐рдд рдХрд┐рдП рдЧрдП рд╣реИрдВред рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ, рдЙрддреНрддрд░рд╛рд░реНрджреНрдз рдореЗрдВ рддрд░реНрдХ $ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рд╣реИ рдФрд░ рдЙрддреНрдкрдиреНрди рдХрд░рддреЗ рд╕рдордп рдЗрд╕ рдбреЗрдЯрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдЬрдирд░реЗрдЯрд░ рдХреЗ рддрд░реНрдХ рд╣рдореЗрд╢рд╛ рдореВрд▓реНрдп рджреНрд╡рд╛рд░рд╛ рдкрд╛рд░рд┐рдд рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдЙрджрд╛рд╣рд░рдг рдХрдИ рдФрд░ рдЕрдзрд┐рдХ рдирд┐рд░реНрдорд┐рдд рдХрд╛рд░реНрдпреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ: Faker \ name () , Faker \ email () , dateFormat () , рдЖрджрд┐ред рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд рдХрд╛рд░реНрдпреЛрдВ рдкрд░ рдЕрдиреБрднрд╛рдЧ ред

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

 { "login": "fgadrkq", "name": "Lucy Cechtelar", "email": "tkshlerin@collins.com", "password": "gbnaueyaaf", "child": { "name": "Adaline Reichel", "gender": 2, "age": 12 }, "birthday": 318038400, "settings": { "notifications_enabled": true } } 

рдЪрд╛рдЗрд▓реНрдб рдлрд╝реАрд▓реНрдб рдХрд╛ рдорд╛рди рдЪрд╛рдЗрд▓реНрдб () рдЬрдирд░реЗрдЯрд░ рдХрд╛ рдкрд░рд┐рдгрд╛рдо рд╣реИред

рдЬреИрд╕рд╛ рдХрд┐ рдПрдкреАрдЖрдИ рд╡рд┐рдзрд┐рдпреЛрдВ рдХреЗ рд╡рд┐рд╡рд░рдг рдореЗрдВ, рдЙрджреНрдзрд░рдг рдЪрд┐рд╣реНрдиреЛрдВ рдореЗрдВ рд╕рдВрд▓рдЧреНрди рдирд╣реАрдВ рдХрд┐рдП рдЧрдП рдХрд┐рд╕реА рднреА рддрд╛рд░ рдХреЛ рдореВрд▓реНрдпрд╛рдВрдХрди рдХреЗ рд░реВрдк рдореЗрдВ рдорд╛рдирд╛ рдЬрд╛рддрд╛ рд╣реИред рдпрд╣ рди рдХреЗрд╡рд▓ рдХрд┐рд╕реА рдЕрдиреНрдп рдЬрдирд░реЗрдЯрд░ рдХреЗ рд▓рд┐рдП рдХреЙрд▓ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ, рдмрд▓реНрдХрд┐ рдПрдХ рдордирдорд╛рдирд╛ рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ рд╣реИ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЯрд┐рдкреНрдкрдгреА ($ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛) рдЬрдирд░реЗрдЯрд░ рдореЗрдВ, рд╕рд╛рдордЧреНрд░реА рдлрд╝реАрд▓реНрдб рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХреЗ рд╕рдВрдШрдирди рдХрд╛ рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рдХрд░рддреА рд╣реИ рд╣рд╛рдп! рдореИрдВ $ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЛ рдирд╛рдо рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реВрдВ

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

рдХреНрдпреЛрдВрдХрд┐ рдЬрдирд░реЗрдЯрд░ рдФрд░ рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рдХреЙрд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рд┐рдВрдЯреИрдХреНрд╕ рд╕рдорд╛рди рд╣реИ, рд╡реЗ рдПрдХ рд╕рд╛рдорд╛рдиреНрдп рдирд╛рдо рд╕реНрдерд╛рди рд╕рд╛рдЭрд╛ рдХрд░рддреЗ рд╣реИрдВред рдЕрдзрд┐рд╡реЗрд╢рди рдХреЗ рджреНрд╡рд╛рд░рд╛, рдореИрдВ рдПрдХ "рд╡рд┐рдХреНрд░реЗрддрд╛" рдпрд╛ рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд рдХрд╛рд░реНрдпреЛрдВ рдХреЗ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдХреЛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд╡рд┐рднрд╛рдЬрдХ рдХреЗ рд░реВрдк рдореЗрдВ рдмреИрдХрд╕реНрд▓реИрд╢ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХрд╛ рд╕реБрдЭрд╛рд╡ рджреЗрддрд╛ рд╣реВрдВ, рдЬреИрд╕реЗ рдХрд┐ Gakerub.com/fzaninotto/Fit рдкреБрд╕реНрддрдХрд╛рд▓рдп рдкрд░ рдЖрдзрд╛рд░рд┐рдд Faker \ something () рдлрд╝рдВрдХреНрд╢рдиред

рдЬрдирд░реЗрдЯрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдмрд╛рд░реАрдХрд┐рдпрд╛рдВ, рдЖрдк рдкрдврд╝ рдирд╣реАрдВ рд╕рдХрддреЗ рд╣реИрдВ
рдЬрдирд░реЗрдЯрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛, рдЖрдк рдбреЗрдЯрд╛ рд╕рдВрд░рдЪрдирд╛рдУрдВ рдХреА рд░рдЪрдирд╛ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:

 # Userredentials     $user Userredentials($user): body: login: $user.email password: $user.password #    .     ,    GlobalSearchResult($posts, $comments, $users): body: posts: title: " " list: $posts comments: title: " " list: $comments users: title: " " list: $users 

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

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

рдорд╛рди рд▓реЗрдВ рдХрд┐ рдЖрдкрдХреЗ рдкрд╛рд╕ рдкрд╣рд▓реЗ рд╕реЗ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ () рдЬрдирд░реЗрдЯрд░ рд╣реИ рдЬреЛ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЗ рд▓рд┐рдП рд╕рд╣реА рдбреЗрдЯрд╛ рд╕рдВрд░рдЪрдирд╛ рдмрдирд╛рддрд╛ рд╣реИред рдЕрдм рдЖрдкрдХреЛ рдпрд╣ рдЬрд╛рдВрдЪрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рдХрд┐ рдпрджрд┐ рдЖрдк рдЧрд▓рдд рдбреЗрдЯрд╛ рдкреНрд░рджрд╛рди рдХрд░рддреЗ рд╣реИрдВ рддреЛ рдПрдкреАрдЖрдИ рдХреИрд╕реЗ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рджреЗрдЧрд╛ред рдЖрдк рджреЛ рддрд░реАрдХреЛрдВ рд╕реЗ рдЬрд╛ рд╕рдХрддреЗ рд╣реИрдВ:

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

 #      ,    , #    InvalidUser($user): body: $user replace: email: Faker\String(6, 15) #   password: Faker\String(1, 5) #    new_field: "      ,  " remove: name: size($user.name) < 10 #  ,    10  #      , #        InvalidNewUser: body: User() replace: login: "!@#$%^&*" #   remove: about: true settings: notifications: 100500 #       , #      true 

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

рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд рдХрд╛рд░реНрдп


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

рдЪрд░ рдХреЗ рд╕рд╛рде рд╕рдВрдЪрд╛рд▓рди:


рдЗрд╕реА рддрд░рд╣ ($ var, $ рдирдореВрдирд╛, $ checkTypes) рдмреБрд▓рд┐рдпрди - рддрд░реНрдХ рд╕рд╣реА рд╣реИ рдЕрдЧрд░ рддрд░реНрдХ рдПрдХ рд╣реА рдкреНрд░рдХрд╛рд░ рдХреЗ рд╣реИрдВ, рдпрджрд┐ $ var рдПрдХ рд╕рд░рдгреА рд╣реИ, рддреЛ рд╕рднреА рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХреБрдВрдЬрд┐рдпрд╛рдБ рдЬреЛ $ рдирдореВрдирд╛ рдореЗрдВ рд╣реИрдВ, $ var рдореЗрдВ рд╣реЛрдиреА рдЪрд╛рд╣рд┐рдП, рдпрджрд┐ $ checkTypes рд╕рдЪ рд╣реИ, рддреЛ рд╕рдВрдмрдВрдзрд┐рдд рддрддреНрд╡реЛрдВ рдХреЗ рдкреНрд░рдХрд╛рд░ рдореЗрд▓ рдЦрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред рджреВрд╕рд░реЗ рд╢рдмреНрджреЛрдВ рдореЗрдВ, $ var рд╕рд░рдгреА рдХреЗ рддрддреНрд╡ $ рдирдореВрдиреЗ рдХреЗ рддрддреНрд╡реЛрдВ рдХрд╛ рд╕рдмрд╕реЗрдЯ рд╣реИрдВред
рд╕рдорд╛рди ($ var, $ рдирдореВрдирд╛, $ checkTypes) рдмреВрд▓рд┐рдпрди рд╕рдорд╛рди рдХрд╛ рдПрдХ рдПрдирд╛рд▓реЙрдЧ рд╣реИ () , рдЕрддрд┐рд░рд┐рдХреНрдд рдПрд░реЛ рдХреЗ рд╕рд╛рде, рд╕рд░рдгрд┐рдпреЛрдВ рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ, $ var рдореЗрдВ рд╕рднреА рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХреБрдВрдЬрд┐рдпрд╛рдБ $ рдирдореВрдирд╛ рдореЗрдВ рднреА рд╣реЛрдиреА рдЪрд╛рд╣рд┐рдП ред рджреВрд╕рд░реЗ рд╢рдмреНрджреЛрдВ рдореЗрдВ, $ var рд╕рд░рдгреА рдХреЗ рддрддреНрд╡ рддрддреНрд╡ рдкреНрд░рдХрд╛рд░ рддрдХ $ рдирдореВрдирд╛ рд╕рд░рдгреА рдХреЗ рддрддреНрд╡реЛрдВ рдХреЗ рдмрд░рд╛рдмрд░ рд╣реИрдВ ред
рдЕрдзрд┐рдХрддрдо ($ var1, $ var2, ... $ varN) - рдкрд╛рд░рд┐рдд рдореВрд▓реНрдпреЛрдВ рдХреА рдЕрдзрд┐рдХрддрдо (рдпрджрд┐ рдЙрдирдХреА рддреБрд▓рдирд╛ рдХреА рдЬрд╛ рд╕рдХрддреА рд╣реИ)ред
рдиреНрдпреВрдирддрдо ($ var1, $ var2, ... $ varN) - рдкрд╛рд░рд┐рдд рдореВрд▓реНрдпреЛрдВ рдХреА рдиреНрдпреВрдирддрдоред
if ($ condition, $ var1, $ var2) - рдпрджрд┐ $ condition == рд╕рддреНрдп рд╣реИ, рддреЛ рдпрд╣ $ var1, рдЕрдиреНрдпрдерд╛ $ 2 рдХреЛ рд╡рд╛рдкрд╕ рдХрд░ рджреЗрдЧрд╛ред рдХреЛрдЪрд┐рдВрдЧ рдСрдкрд░реЗрдЯрд░ (рд╣реИрд▓реЛ MySQL) рдХреА рдЬрдЧрд╣ред
рдкрд╕рдВрдж ($ condition1, $ var1, $ condition2, $ var2, ..., $ conditionN, $ varN) - $ рд╕рд╢рд░реНрдд == рд╕рдЪ рд╣реЛрдиреЗ рдкрд░ рдкрд╣рд▓рд╛ рд╕рд╛рдордирд╛ рдХрд░рдирд╛ рдкрдбрд╝рд╛ $ varK рд▓реМрдЯреЗрдЧрд╛ред

рддрд╛рд░ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░реЗрдВ:


рдЖрдХрд╛рд░ ($ рд╕реНрдЯреНрд░рд┐рдВрдЧ) рд╕рдВрдЦреНрдпрд╛ - UTF-8 рдПрдиреНрдХреЛрдбрд┐рдВрдЧ рдореЗрдВ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХреА рд▓рдВрдмрд╛рдИред
рд░реЗрдЧреЗрдХреНрд╕ ($ рд╕реНрдЯреНрд░рд┐рдВрдЧ, $ рд░реЗрдЧреЗрдХреНрд╕) рдмреВрд▓рд┐рдпрди - рдирд┐рдпрдорд┐рдд рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ рдХреЗ рд▓рд┐рдП рдЪреЗрдХ рд╕реНрдЯреНрд░рд┐рдВрдЧ ред
regexMatch ($ string, $ regex) Array - рд╕реНрдЯреНрд░рд┐рдВрдЧреНрд╕ рдХреА рдПрдХ рд╕рд░рдгреА рд▓реМрдЯрд╛рдПрдЧрд╛ - рдирд┐рдпрдорд┐рдд рд╕рдореВрд╣реЛрдВ рдХреЗ рд╕рд╛рде рдореЗрд▓ рдЦрд╛рддрд╛ $ regex ред

рдРрд░реЗ рдкреНрд░рд╕рдВрд╕реНрдХрд░рдг:


рд╕рд░рдгреА ($ var1, $ var2, ... $ varN) рд╕рд░рдгреА - рдкрд╛рд░рд┐рдд рддрддреНрд╡реЛрдВ рд╕реЗ рдПрдХ рд╕рд░рдгреА рдмрдирд╛рддрд╛ рд╣реИред
рдЖрдХрд╛рд░ ($ рд╕рд░рдгреА) рд╕рдВрдЦреНрдпрд╛ - рд╕рд░рдгреА рдореЗрдВ рддрддреНрд╡реЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ред
рдЪрд╛рдмрд┐рдпрд╛рдБ ($ рд╕рд░рдгреА) рд╕рд░рдгреА - рд╕рд░рдгреА рдореЗрдВ рдХреБрдВрдЬрд┐рдпреЛрдВ рдХреА рдПрдХ рд╕реВрдЪреАред
рдЯреБрдХрдбрд╝рд╛ ($ рд╕рд░рдгреА, $ рдСрдлрд╕реЗрдЯ, $ рд▓рдВрдмрд╛рдИ) рд╕рд░рдгреА - рд▓рдВрдмрд╛рдИ рдХреЗ $ рдСрдлрд╕реЗрдЯ рд╕реЗ рд╕рд░рдгреА рдХрд╛ рд╣рд┐рд╕реНрд╕рд╛ $ рд▓рдВрдмрд╛рдИ, ( рдЕрдзрд┐рдХ )ред
рдкрд░рд┐рд╢рд┐рд╖реНрдЯ ($ рд╕рд░рдгреА, $ рдореВрд▓реНрдп) рд╕рд░рдгреА - рд╕рд░рдгреА рдХреЗ рдЕрдВрдд рдореЗрдВ рдПрдХ рддрддреНрд╡ рдЬреЛрдбрд╝реЗрдВред
Prepend ($ array, $ value) рд╕рд░рдгреА - рд╕рд░рдгреА рдХреА рд╢реБрд░реБрдЖрдд рдореЗрдВ рдПрдХ рддрддреНрд╡ рдЬреЛрдбрд╝реЗрдВред

рджрд┐рдирд╛рдВрдХ рдкреНрд░рд╕рдВрд╕реНрдХрд░рдг:


dateFormat ($ date, $ format) рд╕реНрдЯреНрд░рд┐рдВрдЧ - рджрд┐рдирд╛рдВрдХ рд╕реНрд╡рд░реВрдкрдг, ( рд╕реНрд╡рд░реВрдкреЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЕрдзрд┐рдХ )ред
dateModify ($ date, $ format) рджрд┐рдирд╛рдВрдХ - рд╡рд╣ рджрд┐рдирд╛рдВрдХ рдкрд░рд┐рд╡рд░реНрддрд┐рдд рдХрд░реЗрдВ, рдЬреЛ рдХрд┐ рд░рд┐рд▓реЗрдЯрд┐рд╡ рдлреЙрд░реНрдореЗрдЯреНрд╕ рдХреЗ рд╕рд╛рде рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рд╣реИ ред

рд░реИрдВрдбрдо рдЯреЗрд╕реНрдЯ рдбреЗрдЯрд╛ рдЬреЗрдирд░реЗрд╢рди:


Faker \ рдкреВрд░реНрдгрд╛рдВрдХ ($ рдорд┐рдирдЯ, $ рдЕрдзрд┐рдХрддрдо) рд╕рдВрдЦреНрдпрд╛ - $ $ рд╕реЗ $ рдЕрдзрд┐рдХрддрдо рд╕рдорд╛рд╡реЗрд╢реА рдХреЗ рд▓рд┐рдП рдпрд╛рджреГрдЪреНрдЫрд┐рдХ рдкреВрд░реНрдгрд╛рдВрдХ
Faker \ ipv4 () рд╕реНрдЯреНрд░рд┐рдВрдЧ - рдпрд╛рджреГрдЪреНрдЫрд┐рдХ IPv4
Faker \ arrayElement ($ рд╕рд░рдгреА) рд╕реНрдЯреНрд░рд┐рдВрдЧ - рд╕рд░рдгреА рд╕реЗ рдпрд╛рджреГрдЪреНрдЫрд┐рдХ рддрддреНрд╡
Faker \ name () рд╕реНрдЯреНрд░рд┐рдВрдЧ - рдпрд╛рджреГрдЪреНрдЫрд┐рдХ рдирд╛рдо
Faker \ рдИрдореЗрд▓ () рд╕реНрдЯреНрд░рд┐рдВрдЧ - рдпрд╛рджреГрдЪреНрдЫрд┐рдХ рдИрдореЗрд▓

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

рдкрд░реАрдХреНрд╖рдг рдХреЗ рдорд╛рдорд▓реЗ


рдПрдХ рдкрд░реАрдХреНрд╖рдг рдорд╛рдорд▓рд╛ рдмрдпрд╛рдиреЛрдВ рдХрд╛ рдПрдХ рдХреНрд░рдо рд╣реИ рдЬрд┐рд╕реЗ рдПрдХ рдЗрдХрд╛рдИ рдХрд╣рд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рднрд╛рд╖рд╛рдУрдВ рдореЗрдВ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЗ рдХреБрдЫ рдПрдирд╛рд▓реЙрдЧред рдЯреЗрд╕реНрдЯрдХреЗрд╕ рд╕реНрдЯреЗрдЯрдореЗрдВрдЯ

рджреНрд╡рд╛рд░рд╛ рдЯреЗрд╕реНрдЯ рдХреЗрд╕ рдмрдирд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ , рдЙрд╕рдХреЗ рдмрд╛рдж рдЯреЗрд╕реНрдЯ рдХреЗрд╕ рдХреЗ рдирд╛рдо рд╕реЗ, рдПрдкреАрдЖрдИ рдкрджреНрдзрддрд┐ рдХреЗ рдирд╛рдо рдХреЗ рд╕рдорд╛рди рд╕рд┐рдВрдЯреИрдХреНрд╕ рдХреЗ рд╕рд╛рде ред рдиреЗрд╕реНрдЯреЗрдб рдЯреЗрд╕реНрдЯ рдХреЗрд╕ рдирд┐рд╖рд┐рджреНрдз рд╣реИрдВред

 testcase Registration $device //     var $user = User() Register $user on $device assert $response.code == 201 //        var $user = User() //       InvalidUser() var $user.email = "some_bad_email" Register $user on $device assert $response.code == 400 

рд░рди рд╕реНрдЯреЗрдЯрдореЗрдВрдЯ рдПрдХ рдЕрд▓рдЧ рдЯреЗрд╕реНрдЯ рдХреЗрд╕ рдХрд╣ рд╕рдХрддрд╛ рд╣реИ, рдпрд╛ рд╕рднреА рдЯреЗрд╕реНрдЯ рдХреЗрд╕ рдЬрд┐рдиреНрд╣реЗрдВ рддрд░реНрдХ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИред

 run Get all users //   -,    run Get user $user_id //   -   run //   -,     

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

рддрд░реНрдХ рд╡рд┐рдзрд┐ рдХреЗ рд▓рд┐рдП рддрд░реНрдХ рдкрд╛рд╕ рдХрд░рдиреЗ рдХреЗ рдкреВрд░реНрдг рд╕рд╛рджреГрд╢реНрдп рдореЗрдВ рд╕рдВрджрд░реНрдн рдпрд╛ рдорд╛рди рдХреЗ рджреНрд╡рд╛рд░рд╛ рдкрд░реАрдХреНрд╖рдг рдорд╛рдорд▓реЗ рдореЗрдВ рддрд░реНрдХ рдкрд╛рд░рд┐рдд рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВред

рдЪрд░ рдФрд░ рдХреНрд╖реЗрддреНрд░


рдЪрд░ рдирд╛рдо рдХреЗрд╕-рд╕рдВрд╡реЗрджреА рд╣реЛрддреЗ рд╣реИрдВ рдФрд░ $ рд╕рд╛рдЗрди рдХреЗ рд╕рд╛рде рд╢реБрд░реВ рд╣реЛрддреЗ рд╣реИрдВ (рд╣рд╛рдБ, рд╣рд╛рдБ, рдореИрдВ рдПрдХ pshpshnik рд╣реВрдВ)ред

рдХреА рдЪрд░ рдкреНрд░рдХрд╛рд░ рд╣реИрдВ рд╕рд░рдгреА , рддреЛ рдЕрд▓рдЧ-рдЕрд▓рдЧ рдХреНрд╖реЗрддреНрд░реЛрдВ рдпрд╛ рдореВрд▓реНрдп рдХреЗ рддрддреНрд╡реЛрдВ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдмрд┐рдВрджреБ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЙрддреНрдкрд╛рджрди рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ: $users.12.passwordред рдЕрдВрдХреЛрдВ рдХреЗ рдмреАрдЪ, рдХреЗрд╡рд▓ рд╕рдВрдЦреНрдпрд╛ рдпрд╛ рд▓реИрдЯрд┐рди рдЕрдХреНрд╖рд░, рдкрд╣рд▓реЗ рд▓реИрдЯрд┐рди рдЕрдХреНрд╖рд░ рд╡рд╛рд▓реЗ рдЕрдВрдбрд░рд╕реНрдХреЛрд░ рдФрд░ рд╕рдВрдЦреНрдпрд╛ рдХреА рдЕрдиреБрдорддрд┐ рд╣реИред рдлрд╝реАрд▓реНрдб рдирд╛рдо рднреА рдХреЗрд╕ рд╕рдВрд╡реЗрджрдирд╢реАрд▓ рд╣реЛрддреЗ рд╣реИрдВред

рдПрдХ рд╕рд░рдгреА рддрддреНрд╡ рдХреА рдПрдХ рдЧрддрд┐рд╢реАрд▓ рдкрд╣реБрдВрдЪ рд╕рдВрднрд╡ рд╣реИ:$post.comments[$i + 1].content

рдЪрд╛рд░ рдкреНрд░рдХрд╛рд░ рдХреЗ рд╕рдВрджрд░реНрдн рд╣реИрдВ - рдЪрд░ рдХрд╛ рджрд╛рдпрд░рд╛ред

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

рдкрд░реАрдХреНрд╖рдг рдорд╛рдорд▓реЗ рдХрд╛ рд╕рдВрджрд░реНрдн - рд╣рд░ рдмрд╛рд░ рдкрд░реАрдХреНрд╖рдг рдХреЗ рдорд╛рдорд▓реЗ рдХреЛ рд░рди рд╕реНрдЯреЗрдЯрдореЗрдВрдЯ рдХреЗ рд╕рд╛рде рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рдиреЗ рдкрд░ рдПрдХ рдирдпрд╛ рдмрдирд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ ред

рдПрдкреАрдЖрдИ рд╡рд┐рдзрд┐ рд╕рдВрджрд░реНрдн - рддрдм рдмрдирд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдЬрдм рдПрдкреАрдЖрдИ рд╡рд┐рдзрд┐ рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬрдм рдкрд╣рд▓реЗ рдФрд░ рдмрд╛рдж рдореЗрдВ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдСрдкрд░реЗрдЯрд░реЛрдВ рдХреЛ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ ред

рдЬреЗрдирд░реЗрдЯрд░ рд╕рдВрджрд░реНрдн- рдЬрдирд░реЗрдЯрд░ рдореЗрдВ рдирдпрд╛ рдмрдирд╛рдиреЗ рдпрд╛ рдореМрдЬреВрджрд╛ рдЪрд░ рдХреЛ рдмрджрд▓рдиреЗ рдХреА рдХреЛрдИ рд╕рдВрднрд╛рд╡рдирд╛ рдирд╣реАрдВ рд╣реИ, рдЗрд╕рд▓рд┐рдП рд╡реИрд╢реНрд╡рд┐рдХ рд╕рдВрджрд░реНрдн рдЪрд░ рдФрд░ рддрд░реНрдХ рдХреЗрд╡рд▓ рдкрдврд╝рдиреЗ рдХреЗ рд▓рд┐рдП рд╣реИрдВред рдЪрд░ рд╣рдореЗрд╢рд╛ рдЬрдирд░реЗрдЯрд░ рд╕рдВрджрд░реНрдн рдХреЗ рд▓рд┐рдП рдореВрд▓реНрдп рджреНрд╡рд╛рд░рд╛ рдкрд╛рд░рд┐рдд рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВред

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

рдЪрд░ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдСрдкрд░реЗрдЯрд░реЛрдВ рдХреЗ рдЙрджрд╛рд╣рд░рдг:

 const $a = 1 let $a = 2 //    var $b = 1 const $b = 3 //    const $c = 3; $c = 4 //   , $c      

 let $a = 1; $a = $a + 1; $a = $a + 2 print $a // 4 

 Testcase Context example changes $argument1, $argument2 and $argument3 var $a = "changed" let $b = "changed" const $c = "changed" import $i let $i = "changed" var $argument1 = "changed" var $argument2 = "changed" var $argument3 = "changed" // ,     var $a = "original" var $b = "original" var $i = "original" const $c = "original"; var $paramByRef = "original" var $paramByVal = "original" const $paramConst = "original" run Context example changes $paramByRef, {$paramByVal} and $paramConst //  $a     - print $a // "original" // $b     -,  let    $b print $b // "changed" // $i      print $i // "original" //      ,  var   print $c // "original" //     print $paramByRef // "changed" //     print $paramByVal // "original" //     ,     print $paramConst // "original" 

рд╕рд┐рд╕реНрдЯрдо рдФрд░ рд╕рдВрдЪрд╛рд▓рди рдЯрд╛рдЗрдк рдХрд░реЗрдВ


рд▓реИрдХреНрд╕ рдбрд╛рдпрдиреЗрдорд┐рдХ рдЯрд╛рдЗрдкрд┐рдВрдЧ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

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

рдЯреБрдХрдбрд╝рд╛ рдкреНрд░рдХрд╛рд░ рдореЗрдВ рдЙрдкрд▓рдмреНрдз рдбреЗрдЯрд╛ рдкреНрд░рдХрд╛рд░:

рд╕рдВрдЦреНрдпрд╛рдПрдХ рд╕рдВрдЦреНрдпрд╛ рд╣реИред рд╕рд╛рджрдЧреА рдХреЗ рдХрд╛рд░рдгреЛрдВ рдХреЗ рд▓рд┐рдП, рдореИрдВрдиреЗ рдЗрдВрдЯреЗрдЧрд░ рдФрд░ рдлреНрд▓реЛрдЯ рдХреЗ рд▓рд┐рдП рдЕрд▓рдЧ-рдЕрд▓рдЧ рдкреНрд░рдХрд╛рд░ рдирд╣реАрдВ рдмрдирд╛рдПред рдкреАрд╕реЛрд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдВ рдкреВрд░реНрдгрд╛рдВрдХ рдФрд░ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рд╕рдВрдЦреНрдпрд╛рдУрдВ рдХреЗ рдмреАрдЪ рдПрдХрдорд╛рддреНрд░ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдЕрдВрддрд░ рдПрдХ рд╕рд░рдгреА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХреБрдВрдЬреА рдХреЗ рд░реВрдк рдореЗрдВ рд╣реИ: рд╡рд╛рд╕реНрддрд╡рд┐рдХ рд╕рдВрдЦреНрдпрд╛ рдкреВрд░реНрдгрд╛рдВрдХреЛрдВ рдХреЗ рд▓рд┐рдП рдЧреЛрд▓ рд╣реЛрдЧреАред
7 -42 3.14159

рд╕реНрдЯреНрд░рд┐рдВрдЧ - рдбрдмрд▓ рдХреЛрдЯреНрд╕ рдореЗрдВ рд╕рдВрд▓рдЧреНрди рд╕реНрдЯреНрд░рд┐рдВрдЧреНрд╕ , рд╕рдВрднрд╡рддрдГ рдПрдХ
"I say \"Hello world!\""

рдирд▓ рд╕реНрд▓реИрд╢ рдХреЗ рд╕рд╛рде рдмрдЪ рдЧрдП - рдХреЗрд╕-рдЕрд╕рдВрд╡реЗрджрдирд╢реАрд▓ рд╕реНрдерд┐рд░
null

рдмреВрд▓рд┐рдпрди рджреНрд╡рд╛рд░рд╛ рдирд┐рд░реНрдзрд╛рд░рд┐рдд - рдмреВрд▓рд┐рдпрди рд╕рдВрдЪрд╛рд▓рди рдФрд░ рддреБрд▓рдирд╛ рд╕рдВрдЪрд╛рд▓рди рдХрд╛ рдкрд░рд┐рдгрд╛рдо рд╣реИ, рдХреЗрд╕-рдЕрд╕рдВрд╡реЗрджрдирд╢реАрд▓ рд╕реНрдерд┐рд░рд╛рдВрдХ рджреНрд╡рд╛рд░рд╛ рдирд┐рд░реНрдзрд╛рд░рд┐рдд
true false

рддрд┐рдерд┐ / рддрд┐рдерд┐ рдФрд░ рд╕рдордпред "рд╣реБрдб рдХреЗ рддрд╣рдд" рдПрдХ рдбреЗрдЯрдЯрд╛рдЗрдо рд╣реИ ред рд▓рдЧрд╛рддрд╛рд░ рдПрдХ рдкреНрд░рд╛рд░реВрдк рдореЗрдВ, рдПрдХ рдЙрджреНрдзрд░рдг рдореЗрдВ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ ред
'now', '2008-08-07 18:11:31', 'last day of next month'

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

 let $a.1 = 100 let $i = 1 let $a[$i + 1] = 200 let $a.sum = $a.1 + $a.2 print " "; $a.sum //  300 var $b = array(true, 3, $a, "Hi") // [true, 3, {1: 100, 2: 200, "sum":300}, "Hi"] 

рдЬрдм рдХреЛрдИ рдирд╣реАрдВ рдЪрд░ рдпрд╛ рдПрд░реЗрд╕ рдПрд▓реАрдореЗрдВрдЯ рдХреЛ рдПрдХреНрд╕реЗрд╕ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдЯреЗрд╕реНрдЯ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЛ рд░реЛрдХ рджрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ рдФрд░ рдПрдХ рддреНрд░реБрдЯрд┐ рдЙрддреНрдкрдиреНрди рд╣реЛрдЧреАред рд▓реЗрдХрд┐рди рдЬрдм рдСрдкрд░реЗрдЯрд░реЛрдВ рдХрд╛ рджрд╛рд╡рд╛ рд╣реИ рдпрд╛ рдмрд╣реБрдд рдЬрд░реВрд░реА рд╣реИ, рдЕрдЧрд░ рд╡рд╣рд╛рдБ рдХрд┐рд╕реА рдЧреИрд░-рдореМрдЬреВрдж рдЪрд░ рд▓рд┐рдП рдПрдХ рд╕рдВрджрд░реНрдн рд╣реИ, рддреНрд░реБрдЯрд┐ рдирд╣реАрдВ рд╣реЛрдЧрд╛, рд▓реЗрдХрд┐рди рдЬрд╛рдВрдЪ рдореЗрдВ рд╡рд┐рдлрд▓ рдорд╛рдирд╛ рдЬрд╛рддрд╛ рд╣реИред

рдПрдХ рдЪрд░ рдХреЗ рдЕрд╕реНрддрд┐рддреНрд╡ рдФрд░ рдкреНрд░рдХрд╛рд░ рдХреА рдЬрд╛рдБрдЪ рдХрд░рдирд╛


рд╣рдореЗрдВ рдЪрд░ @ рдХреЗ рдЕрд╕реНрддрд┐рддреНрд╡ рдФрд░ рдкреНрд░рдХрд╛рд░ рдХреА рдЬрд╛рдБрдЪ рдХреЗ рдирд┐рд░реНрдорд╛рдг рдХрд╛ рдЕрд▓рдЧ рд╕реЗ рдЙрд▓реНрд▓реЗрдЦ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП ред

рдпрджрд┐ $ рдХреЗ рдмрдЬрд╛рдп рдЪрд░ рдирд╛рдо рдореЗрдВ @ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ , рддреЛ рдЗрд╕ рдирд┐рд░реНрдорд╛рдг рдХрд╛ рдкрд░рд┐рдгрд╛рдо рдирд┐рдореНрди рдореЗрдВ рд╕реЗ рдПрдХ рд╣реЛрдЧрд╛:

  • рдЪрд░ рдХреЗ рдкреНрд░рдХрд╛рд░ рдпрд╛ рд╕рд░рдгреА рддрддреНрд╡ рдХреЗ рдкреНрд░рдХрд╛рд░ рдХреЗ рд╕рд╛рде рдПрдХ рд╕реНрдЯреНрд░рд┐рдВрдЧ, рдпрджрд┐ рдХреБрдВрдЬреА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛;
  • рдЕрд╢рдХреНрдд рдЕрдЧрд░ рдЪрд░ рд╕реБрд▓рдн рд╕рдВрджрд░реНрднреЛрдВ рдореЗрдВ рдирд╣реАрдВ рдкрд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдпрд╛ рд╕рд░рдгреА рдореЗрдВ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХреБрдВрдЬреА рдХреЗ рд╕рд╛рде рддрддреНрд╡ рдореМрдЬреВрдж рдирд╣реАрдВ рд╣реИред

рдпрд╣ рдбрд┐рдЬрд╝рд╛рдЗрди HTTP рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛рдУрдВ рдХреА рд╕рдВрд░рдЪрдирд╛ рдХреА рдЬрд╛рдБрдЪ рдХрд░рддреЗ рд╕рдордп рдЙрдкрдпреЛрдЧреА рд╣реЛ рд╕рдХрддрд╛ рд╣реИред

 var $a.string_field = "Hello World" var $a.number_field = 3.14 var $a.bool_field = true var $a.date_field = '+1 day' var $a.null_field = null var $a.array_field = array(1, "2") assert @a.string_field == "String" assert @a.number_field == "Number" assert @a.bool_field == "Boolean" assert @a.date_field == "Date" assert @a.null_field == "Null" assert @a.array_field == "Array" assert @a.array_field.0 == "Number" assert @a.array_field.1 == "String" assert @a.array_field.2 == null assert @notExistedVar == null 

рдпрд╛ рдирд┐рд░реНрдорд╛рдг рдореЗрдВ рдЬреИрд╕реЗ:

 assert @comment.optional_field && $comment.optional_field > 20 

рдкрд╣рд▓реЗ рдСрдкрд░реЗрд╢рди рдкрд░ рдмреВрд▓рд┐рдпрди рдСрдкрд░реЗрд╢рди рдХреЛ рдЕрдиреБрдХреВрд▓рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдпрджрд┐ рдкрд╣рд▓рд╛ рдСрдкрд░реЗрдВрдб рдЧрд▓рдд рд╣реИ , рддреЛ && рдСрдкрд░реЗрд╢рди рднреА рджреВрд╕рд░реЗ рдСрдкрд░реЗрдВрдб рдХреА рдЧрдгрдирд╛ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдирд╣реАрдВ рдХрд░реЗрдЧрд╛ред рдЗрд╕реА рддрд░рд╣ рд╕реЗ || ред

рд░рди рдХреЗ рдмреАрдЪ рдбреЗрдЯрд╛ рдХреА рдмрдЪрдд


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

рд╕рд╣реЗрдЬрдирд╛ рд╕рдХреНрд╖рдо рд╣реИ - рд╕реНрдЯреЛрд░реЗрдЬ рдХрдорд╛рдВрдб рд▓рд╛рдЗрди рд╡рд┐рдХрд▓реНрдк , рдЬреЛ рд╕реНрдЯреЛрд░реЗрдЬ рдлрд╝рд╛рдЗрд▓ рдХрд╛ рдирд╛рдо рд╕реЗрдЯ рдХрд░рддрд╛ рд╣реИ:

 pos.phar run ./start.pos --storage=storage.yaml 

рдбреЗрдЯрд╛ рдХреЛ YAML рдкреНрд░рд╛рд░реВрдк рдореЗрдВ рд╕рд╣реЗрдЬрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬреЛ рдЗрд╕реЗ рдкрдврд╝рдирд╛ рдФрд░ рд╕рдВрдкрд╛рджрд┐рдд рдХрд░рдирд╛ рдЖрд╕рд╛рди рдмрдирд╛рддрд╛ рд╣реИред

рд╕рдВрдЧреНрд░рд╣рдг \ get (рд╕реНрдЯреНрд░рд┐рдВрдЧ $ рдХреБрдВрдЬреА, $ defaultValue, рдмреВрд▓рд┐рдпрди $ saveValue = true) - рдпрджрд┐ рдХреБрдВрдЬреА $ рдХреБрдВрдЬреА рдореМрдЬреВрдж рдирд╣реАрдВ рд╣реИ рдпрд╛ рд╕рдВрдЧреНрд░рд╣рдг рдлрд╝рд╛рдЗрд▓ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдирд╣реАрдВ рд╣реИ, рддреЛ $ defaultValue рд▓реМрдЯрд╛рддрд╛ рд╣реИред рдЕрдиреНрдпрдерд╛, рдпрд╣ рд╕рдВрдЧреНрд░рд╣реАрдд рдорд╛рди рд▓реМрдЯрд╛рддрд╛ рд╣реИред рдпрджрд┐ рддрд░реНрдХ $ saveValue рд╕рд╣реА рд╣реИ рдФрд░ рдХреБрдВрдЬреА $ рдХреБрдВрдЬреА рдирд╣реАрдВ рдорд┐рд▓реА, рддреЛ $ defaultValue рд▓рд┐рдЦрд╛ рдЬрд╛рдПрдЧрд╛ред

рднрдВрдбрд╛рд░рдг \ рд╕реЗрдЯ (рд╕реНрдЯреНрд░рд┐рдВрдЧ $ рдХреБрдВрдЬреА, $ рдореВрд▓реНрдп) - рдХреБрдВрдЬреА $ рдХреБрдВрдЬреА рдХреЗ рд╕рд╛рде $ рдореВрд▓реНрдп рдмрдЪрд╛рддрд╛ рд╣реИ, рдФрд░ $ рдореВрд▓реНрдп рд▓реМрдЯрд╛рддрд╛ рд╣реИред рдпрджрд┐ рд╕рдВрдЧреНрд░рд╣рдг рдлрд╝рд╛рдЗрд▓ рд╕реЗрдЯ рдирд╣реАрдВ рдХреА рдЧрдИ рд╣реИ, рддреЛ рдпрд╣ рдХреЗрд╡рд▓ $ рдореВрд▓реНрдп рд▓реМрдЯрд╛рддрд╛ рд╣реИред

рднрдВрдбрд╛рд░рдг \ рдХреБрдВрдЬреА (рд╕реНрдЯреНрд░рд┐рдВрдЧ $ regexp = null) рд╕рд░рдгреА- рд╕рднреА рдЙрдкрд▓рдмреНрдз рдХреБрдВрдЬрд┐рдпреЛрдВ рдХреА рдПрдХ рд╕рд░рдгреА рджреЗрддрд╛ рд╣реИред рдпрджрд┐ рддрд░реНрдХ $ regexp рд╢реВрдиреНрдп рдирд╣реАрдВ рд╣реИ, рддреЛ рдЗрд╕ рдирд┐рдпрдорд┐рдд рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ рдХреЗ рдЕрдиреБрд░реВрдк рдХреБрдВрдЬреА рд╡рд╛рдкрд╕ рдЖ рдЬрд╛рдПрдЧреАред рдпрджрд┐ рд╕рдВрдЧреНрд░рд╣рдг рдлрд╝рд╛рдЗрд▓ рд╕реЗрдЯ рдирд╣реАрдВ рдХреА рдЧрдИ рд╣реИ, рддреЛ рдпрд╣ рдЦрд╛рд▓реА рд╕рд░рдгреА рджреЗрддрд╛ рд╣реИред

рд╕реНрдЯрдбрдЖрдЙрдЯ рдХреЗ рд▓рд┐рдП рдЖрдЙрдЯрдкреБрдЯ


PieceofScript JUnit рдФрд░ HTML рдкреНрд░рд╛рд░реВрдк рдореЗрдВ рд░рд┐рдкреЛрд░реНрдЯ рдЙрддреНрдкрдиреНрди рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдкрд╣рд▓реЗ CI / CD рд╕рд┐рд╕реНрдЯрдо рдХреЗ рд╕рд╛рде рдПрдХреАрдХрд░рдг рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рд╣реИ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рдЬреЗрдирдХрд┐рдВрд╕ред рджреВрд╕рд░рд╛ рдпрд╣ рд╣реИ рдХрд┐ рдкрд░реАрдХреНрд╖рд╛ рдкрд░рд┐рдгрд╛рдо рдХреЛ рдЖрд╕рд╛рдиреА рд╕реЗ рджреЗрдЦреЗрдВ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рд╕реНрдерд╛рдиреАрдп рд╕реНрддрд░ рдкрд░ рдкрд░реАрдХреНрд╖рдг рдХрд░рддреЗ рд╕рдордпред рд╕реНрдЯрд╛рд░реНрдЯрдЕрдк рдкрд░ рд░рд┐рдкреЛрд░реНрдЯ рдлрд╝рд╛рдЗрд▓реЗрдВ рд╕реЗрдЯ рдХреА рдЬрд╛ рд╕рдХрддреА рд╣реИрдВ:
 pos.phar run ./start.pos --junit=junit_report.xml --html=report.html 
HTML рд░рд┐рдкреЛрд░реНрдЯ рдХрд╛ рдПрдХ рдЙрджрд╛рд╣рд░рдг

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

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

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

Verbose - рд╡рд┐рдХрд▓реНрдк рджреНрд╡рд╛рд░рд╛ рдирд┐рд░реНрдзрд╛рд░рд┐рдд-v ред
рдЗрд╕ рд╕реНрддрд░ рдкрд░, рдкреНрд░рд┐рдВрдЯ рд╕реНрдЯреЗрдЯрдореЗрдВрдЯ рдХреЗ рдкрд░рд┐рдгрд╛рдо рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВ ред

рдмрд╣реБрдд рдХреНрд░рд┐рдпрд╛ - -vv рд╡рд┐рдХрд▓реНрдк рджреНрд╡рд╛рд░рд╛ рдирд┐рд░реНрдзрд╛рд░рд┐рдд ред
рдЗрд╕ рд╕реНрддрд░ рдкрд░, рджреБрднрд╛рд╖рд┐рдпрд╛ рдЪреЗрддрд╛рд╡рдиреА рдкреНрд░рджрд░реНрд╢рд┐рдд рдХреА рдЬрд╛рддреА рд╣реИред

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

рдЙрджрд╛рд╣рд░рдг


рдХрд╣рд╛рд╡рдд "рд╕реМ рдмрд╛рд░ рд╕реБрдирдиреЗ рд╕реЗ рдмреЗрд╣рддрд░ рд╣реИ рдПрдХ рдмрд╛рд░ рджреЗрдЦрдирд╛" рд╕рд╣реА рд╣реИ рдФрд░ рд╡реНрдпрд╛рдЦреНрдпрд╛ рдореЗрдВ "рдХреЛрдб рдХреЛ рдПрдХ рдмрд╛рд░ рджреЗрдЦрдиреЗ рд╕реЗ рдмреЗрд╣рддрд░ рд╣реИ рдХрд┐ рдЙрд╕рдХрд╛ рд╡рд░реНрдгрди рд╕реМ рдмрд╛рд░ рдкрдврд╝реЗрдВ"ред рдореИрдВрдиреЗ https://github.com/maximw/PosExamples рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рдореЗрдВ рдЙрджрд╛рд╣рд░рдг рддреИрдпрд╛рд░ рдХрд┐рдП рдФрд░ рдбрд╛рд▓реЗ ред

VirusTotal


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

рдПрдкреАрдЖрдИ рддрдХ рдкрд╣реБрдВрдЪрдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рд░рдЬрд┐рд╕реНрдЯрд░ рдХрд░рдиреЗ рдХреА рдЬрд░реВрд░рдд рд╣реИ , рдХреБрдВрдЬреА рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВ рдФрд░ рдЗрд╕реЗ Virustotal / globals.pos рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдЬреЛрдбрд╝реЗрдВ ред

рдЪрд▓ рд░рд╣реЗ рдкрд░реАрдХреНрд╖рдг:

 pos.phar run ./Virustotal/start.pos 

рд╡рд╣рд╛рдБ рдПрдХ exe-shnik рдХреЗ рд▓рд┐рдП рдЪреЗ рдПрдХ рднрдВрдбрд╛рд░ рдореЗрдВ рд╣реИ?
рдкрд░реАрдХреНрд╖рдгреЛрдВ рдХреЗ рд▓рд┐рдП, рдореИрдВрдиреЗ рд╕рд┐рдореНрдлрдиреА рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рдХреЗ рдХрдВрд╕реЛрд▓ рдШрдЯрдХ рд╕реЗ рд╣рд┐рдбрд┐рдирдкреБрдЯред Exe рдХреА рдирдХрд▓ рдХреАред рдЗрд╕ рдлрд╝рд╛рдЗрд▓ рдХреЛ рд╣рдЯрд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдФрд░ рдкрд░реАрдХреНрд╖рдгреЛрдВ рдХреЗ рд▓рд┐рдП 32 рдПрдордмреА рддрдХ рдХрд┐рд╕реА рдЕрдиреНрдп рдЖрдХрд╛рд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВред

Pastery


рдкрд╛рд╕реЗрдмрд┐рди рдПрдирд╛рд▓реЙрдЧред рдПрдкреАрдЖрдИ рдкреНрд░рд▓реЗрдЦрди ред
рдПрдкреАрдЖрдИ рдХреЛ рдПрдХреНрд╕реЗрд╕ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдкрдХреЛ рд░рдЬрд┐рд╕реНрдЯрд░ рдХрд░рдиреЗ рдХреА рдЬрд░реВрд░рдд рд╣реИ , рдХреБрдВрдЬреА рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВ рдФрд░ рдЗрд╕реЗ Pastery / globals.pos рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдЬреЛрдбрд╝реЗрдВ ред

рдЪрд▓ рд░рд╣реЗ рдкрд░реАрдХреНрд╖рдг:

 pos.phar run ./Pastery/start.pos 

рдпрд╣ рдЙрд▓реНрд▓реЗрдЦрдиреАрдп рд╣реИ рдХрд┐ рдЗрди рдкрд░реАрдХреНрд╖рдгреЛрдВ рдХреЗ рд╕рд╛рде рд╡рд┐рдЪрд╛рд░реЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рдХреА рд╕реАрдорд╛ рдореЗрдВ рдПрдХ рдмрдЧ рдкрд╛рдпрд╛ рдЧрдпрд╛ рдерд╛ред рдпрд╣ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА Pastery рдХреЗ рдбреЗрд╡рд▓рдкрд░реНрд╕ рджреНрд╡рд╛рд░рд╛ рддрдп рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред

рд░рд┐рдХ рдФрд░ рдореЙрд░реНрдЯреА


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

рдЪрд▓ рд░рд╣реЗ рдкрд░реАрдХреНрд╖рдг:

 pos.phar run ./RickAndMorty/20MinutesTest.pos 

рдпрджрд┐ рдЖрдк рдПрдХ рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рдПрдкреАрдЖрдИ рдЬрд╛рдирддреЗ рд╣реИрдВ рдЬреЛ рдЗрд╕ рддрд░рд╣ рд╕реЗ рдкрд░реАрдХреНрд╖рдг рдХрд░рдирд╛ рджрд┐рд▓рдЪрд╕реНрдк рд╣реЛрдЧрд╛, рддреЛ рдХреГрдкрдпрд╛ рдПрдХ рд╡реНрдпрдХреНрддрд┐рдЧрдд рдИрдореЗрд▓ рдореЗрдВ рд▓рд┐рдЦреЗрдВред

рднрд╡рд┐рд╖реНрдп рдХреЗ рд▓рд┐рдП рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдВ рдФрд░ рдпреЛрдЬрдирд╛рдПрдВ, рдпрджрд┐ рдХреЛрдИ рд╣реЛ


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

рд╕реВрдЪреА рджреЗрдЦреЗрдВ
  • рдХрдИ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЗ рдЪрд▓рдиреЗ рдХреЗ рдмрд╛рдж рдУрд╡рд░ рд░рд╛рдЗрдЯрд┐рдВрдЧ рдХреА рд╕рдВрднрд╛рд╡рдирд╛ рдХреЗ рд╕рд╛рде Json рдкреНрд░рд╛рд░реВрдк рдореЗрдВ рдХрд╛рдо рдкрд░ рдПрдХ рд░рд┐рдкреЛрд░реНрдЯ рдЬреЛрдбрд╝реЗрдВ
  • body replace remove
  • , YAML
  • HTTP- ,
  • , run . .
  • HTML- stdout, -vvv
  • https
  • application/x-www-form-urlencoded CURLFile . Guzzle 6,
  • ┬л ┬╗,
  • API,
  • HTML-, bootstrap- ┬л ┬╗, .

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

2) рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ OpenAPI ( рд╕реНрд╡реИрдЧрд░ ), RAML , рд╡рд┐рд╡рд░рдгреЛрдВ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдПрдкреАрдЖрдИ рд╡рд┐рдзрд┐рдпреЛрдВ рдХреЗ рд▓рд┐рдП рдордЪрд╛рди рдмрд╣реБрдд рдЙрдкрдпреЛрдЧреА рд╣реЛрдВрдЧреЗрдбрд╛рдХрд┐рдпрд╛ ред рд▓реЗрдХрд┐рди рдпрд╣ рдмрд╣реБрдд рд╕реЗ рдХрд╛рдо рд▓рд╛рдпрдХ рд╣реИ рдЕрдЧрд░ рдкреАрд▓реВрд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЛ рдЗрд╕рдХреЗ рд▓рд╛рдпрдХ рд╣реИред

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

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

5) рдЕрдЪреНрдЫреА рдкрд░реАрдХреНрд╖рдг рдкреНрд░рдгрд╛рд▓реА рд╕рдорд╛рдирд╛рдВрддрд░ рдореЗрдВ рд╕реНрд╡рддрдВрддреНрд░ рдкрд░реАрдХреНрд╖рдг рдЪрд▓рд╛рддреА рд╣реИред рдЕрдм рдЗрд╕реЗ рдЗрдВрдЯрд░рдкреНрд░реЗрдЯрд░ рдХреЛ рдХрдИ рдмрд╛рд░ рдЕрд▓рдЧ-рдЕрд▓рдЧ рд╕реНрдЯрд╛рд░реНрдЯ рдлрд╛рдЗрд▓реНрд╕ рдХреЗ рд╕рд╛рде рд▓реЙрдиреНрдЪ рдХрд░рдХреЗ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдЬрд╣рд╛рдВ рдЕрд▓рдЧ-рдЕрд▓рдЧ рдЯреЗрд╕реНрдЯ рдХреЗрд╕ рдЬреБрдбрд╝реЗ рд╣реЛрддреЗ рд╣реИрдВред рд▓реЗрдХрд┐рди рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╕рдорд╛рдирд╛рдВрддрд░ рдореЗрдВ рд▓реЙрдиреНрдЪ рдХреА рдЬрд╛ рд╕рдХрдиреЗ рд╡рд╛рд▓реА рдЪреАрдЬрд╝реЛрдВ рдХрд╛ рд╕реНрд╡рдд: рдкрддрд╛ рд▓рдЧрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рд╣рдореЗрдВ рджреБрднрд╛рд╖рд┐рдпрд╛ рдореЗрдВ рд╣реА рдЗрд╕реЗ рдбрд╛рд▓рдирд╛ рд╣реЛрдЧрд╛ред

PS рдПрдХ рддрд░рдл, рдЪреВрдВрдХрд┐ рдпрд╣ рдореЗрд░рд╛ "рд╢рд┐рд▓реНрдк" рд╣реИ, рдЗрд╕рд▓рд┐рдП "I am PRред" рд╣рдм рдореЗрдВ рдкреЛрд╕реНрдЯ рдбрд╛рд▓рдирд╛ рддрд░реНрдХрд╕рдВрдЧрдд рд╣реЛрдЧрд╛ред рджреВрд╕рд░реА рдУрд░, рдореИрдВ рдкреАрдЖрд░ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реВрдВ, рдХрд┐рд╕реА рднреА рд╡реНрдпрд╛рд╡рд╕рд╛рдпрд┐рдХ рд▓рд╛рдн рдХрд╛ рдкреАрдЫрд╛ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реВрдВ, рдмрд╕ рдПрдХ рдЙрдкрдХрд░рдг рдЬреЛ рдореИрдВрдиреЗ рдЦреБрдж рдХреЗ рд▓рд┐рдП рдмрдирд╛рдпрд╛ рд╣реИ, рдореИрдВрдиреЗ "рдХрдВрдШреА" рдХрд░рдиреЗ рдХрд╛ рдлреИрд╕рд▓рд╛ рдХрд┐рдпрд╛ рдФрд░ рдЗрд╕реЗ рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рд░реВрдк рд╕реЗ рдмрд╛рд╣рд░ рд░рдЦрд╛ред

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


All Articles