PHP рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХреЗ рдкрд░реАрдХреНрд╖рдг рдХреЗ рд▓рд┐рдП рдПрдХ рд╕рд░рд▓ рдЙрдкрдХрд░рдг

рдпрд╣ рд▓реЗрдЦ рдХрд┐рд╕рдХреЗ рд▓рд┐рдП рд╣реИ?


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

рдкреНрд░рд╛рдЧрд┐рддрд┐рд╣рд╛рд╕


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

рд▓реЗрдХрд┐рди рдореИрдВ рдЬрд▓реНрджреА рдЦреБрд╢ рдерд╛ред рдкрд╣рд▓рд╛ рдкрд░реАрдХреНрд╖рдг рд▓рд┐рдЦрддреЗ рд╕рдордп Testify.php рдХрд╛рдо рдирд╣реАрдВ рдХрд┐рдпрд╛ред рд╣рдордиреЗ рдПрдХ рдХреИрд╢рд┐рдВрдЧ рдХреНрд▓рд╛рд╕ рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдХрд┐рдпрд╛, рдЬреЛ рдЗрд╕ рдмрд╛рдд рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддрд╛ рд╣реИ рдХрд┐ рдбрд┐рдмрдЧрд┐рдВрдЧ рд╕рдХреНрд╖рдо рд╣реИ рдпрд╛ рдирд╣реАрдВ, рдХреЙрд▓ рдХреЛ рд╕рдВрднрд╛рд▓ рдпрд╛ рдЕрдирджреЗрдЦрд╛ рдХрд░ рд╕рдХрддрд╛ рд╣реИред рдЪреВрдВрдХрд┐ рдбрд┐рдмрдЧрд┐рдВрдЧ рдореЛрдб рдиреЗ рдорд╛рди рдХреЛ рд╕рд╣реА / рдЧрд▓рдд рдХреЗ рд╕рд╛рде DEBUG рдирд┐рд░рдВрддрд░ рдХреА рдЙрдкрд╕реНрдерд┐рддрд┐ рдорд╛рдирд╛, рдЗрд╕рд▓рд┐рдП рдЗрд╕реЗ рдПрдХ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдореЗрдВ рдУрд╡рд░рд░рд╛рдЗрдб рдХрд░рдиреЗ рд╕реЗ рдХрд╛рдо рдирд╣реАрдВ рдЪрд▓реЗрдЧрд╛ред

рдЖрд╡рд╢реНрдпрдХрддрд╛рдУрдВ


рдЗрди рдЦреЛрдЬреЛрдВ рдХреЗ рдмрд╛рдж, рдореБрдЭреЗ рдПрд╣рд╕рд╛рд╕ рд╣реБрдЖ рдХрд┐ рдореБрдЭреЗ рдПрдХ рд╕рд░рд▓ рдЙрдкрдХрд░рдг рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рдЬреЛ:

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


рдПрдХ рдЫреЛрдЯреА рд╕реА рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд▓рд┐рдЦреА рдЧрдИ рдереА рдЬрд┐рд╕рдиреЗ http рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдкрд░реАрдХреНрд╖рдг рдЦреЛрд▓реЗ, рдкрд░рд┐рдгрд╛рдо рдПрдХрддреНрд░ рдХрд┐рдП, рдФрд░ рдЗрд╕реЗ рдкреНрд░рд╕реНрддреБрдд рдХрд░рдиреЗ рдпреЛрдЧреНрдп HTML рд░реВрдк рдореЗрдВ рддреИрдпрд╛рд░ рдХрд┐рдпрд╛ред рдХрдВрд╕реЛрд▓ рд╕рдВрд╕реНрдХрд░рдг рдХреЗ рд▓рд┐рдП рдкрд░реАрдХреНрд╖рдг рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЛ рд╕рдорд╛рди рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП, PHP 5.4+ рдореЗрдВ рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд рд╡реЗрдм рд╕рд░реНрд╡рд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХрд╛ рдирд┐рд░реНрдгрдп рд▓рд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред рдпрд╣ рдЗрд╕ рддрд░рд╣ рд╢реБрд░реВ рд╣реЛрддрд╛ рд╣реИ:

// $web_server_pid = exec("php -S localhost:$this->port >/dev/null 2>/dev/null & echo $!"); // //... // exec("kill $web_server_pid"); 

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

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

 // test.php require __DIR__.'/vendor/autoload.php'; (new \nazarpc\CSTester(__DIR__.'/tests'))->run(); 

рдЕрдм рдпрд╣ рдлрд╝рд╛рдЗрд▓ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдореЗрдВ рдпрд╛ рдХрдВрд╕реЛрд▓ рдореЗрдВ рдЦреЛрд▓реА рдЬрд╛ рд╕рдХрддреА рд╣реИ

 php test.php 

рдкрд░реАрдХреНрд╖рдг рд╕реНрд╡рдпрдВ рдЕрдзрд┐рдХ рдЬрдЯрд┐рд▓ рдирд╣реАрдВ рд╣реИрдВ:

 return 5 != 3 ? 0 : 'Strange PHP'; 

рдпрд╣реА рд╣реИ, рдкреНрд░рддреНрдпреЗрдХ рд╡реНрдпрдХреНрддрд┐рдЧрдд рдкрд░реАрдХреНрд╖рдг рдПрдХ рдлрд╛рдЗрд▓ рд╣реИ рдЬреЛ рд╕рдлрд▓ рдкрд░реАрдХреНрд╖рдг рдХреЗ рдмрд╛рдж 0 рдпрд╛ рддреНрд░реБрдЯрд┐ рдХреЗ рдкрд╛рда рдХреЗ рдмрд╛рдж рд╣реЛрддрд╛ рд╣реИред

рдХрдВрд╕реЛрд▓ рд╡рд┐рдХрд▓реНрдк рдХрд╛ рдЙрджрд╛рд╣рд░рдг рдкрд░рд┐рдгрд╛рдо:



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

рдореБрдЭреЗ рдпрдХреАрди рд╣реИ рдХрд┐ рдЖрдк рдФрд░ рднреА рдмреЗрд╣рддрд░ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рдореИрдВ рд░рдЪрдирд╛рддреНрдордХ рдЖрд▓реЛрдЪрдирд╛ рдФрд░ рд╕реБрдЭрд╛рд╡реЛрдВ рдХреЗ рд▓рд┐рдП рддрддреНрдкрд░ рд╣реВрдВред
рдХреЛрдИ рдирд┐рд░реНрднрд░рддрд╛ рдирд╣реАрдВ, рдирдВрдЧреЗ PHP 5.4+ рдХрд░реЗрдВрдЧреЗред

GitHub рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА: github.com/nazar-pc/CSTester
рд╕рдВрдЧреАрддрдХрд╛рд░ рдкреИрдХреЗрдЬ: packagist.org/packages/nazar-pc/cstester

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


All Articles