рд╕рдорд╛рдЪрд╛рд░ рдФрд░ рд╕рд╛рдордЧреНрд░реА рдХреЗ рд▓рд┐рдВрдХ рдХреЗ рд╕рд╛рде рддрд╛рдЬрд╛ рдЪрдпрдиред рд░рд┐рд▓реАрдЬ рдореЗрдВ: рдкреАрдП ++, рд╡реАрдбрд┐рдпреЛ, рдкреЙрдбрдХрд╛рд╕реНрдЯ, рдмреИрдардХреЛрдВ рдФрд░ рд╕рдореНрдореЗрд▓рдиреЛрдВ рдХреА рдШреЛрд╖рдгрд╛рдУрдВ, рдЙрдкрдпреЛрдЧреА рдЙрдкрдХрд░рдгреЛрдВ рдХреЗ рдПрдХ рд╣рд┐рд╕реНрд╕реЗ рдХреЗ рднрд╛рдЧреНрдп рдФрд░ рдмрд╣реБрдд рдХреБрдЫ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ PHP 7.4.0 рдмреАрдЯрд╛ 4ред
рдЕрдЪреНрдЫрд╛ рдкрдврд╝ рд▓реЛ!
рд╕рдорд╛рдЪрд╛рд░ рдФрд░ рд╡рд┐рдЬреНрдЮрдкреНрддрд┐
PHP рдХреЗ рдЖрдВрддрд░рд┐рдХ
- P ++ рд╡реНрдпрд╡рд╣рд╛рд░реНрдпрддрд╛ рдХреЗ рд▓рд┐рдП рд╕реНрдЯреНрд░реЙ рдкреЛрд▓ - рджреЛ рд╕рдкреНрддрд╛рд╣ рд╕реЗ рдЕрдзрд┐рдХ рд╕рдордп рд╕реЗ, Zeev Surasky рдиреЗ рдПрдХ рдирдИ PHP рднрд╛рд╖рд╛, рдХреЛрдб рдирд╛рдо P ++ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрддреНрддреЗрдЬрдХ рд╡рд┐рдЪрд╛рд░ рдкреЗрд╢ рдХрд┐рдпрд╛ред рдЬрд╡рд╛рдм рдореЗрдВ, рдЗрдВрдЯрд░реНрдирд▓ рдореЗрдВ рдмрд╣реБрдд рд╡рд┐рд╡рд╛рдж рд╣реБрдЖ рдФрд░ рди рдХреЗрд╡рд▓, рдкреАрдПрдЪрдкреА рдХреЗ рдЗрддрд┐рд╣рд╛рд╕ рдФрд░ рдмрд╛рд░реАрдХрд┐рдпреЛрдВ рдХрд╛ рдПрдХ рдЙрддреНрдХреГрд╖реНрдЯ рдЕрд╡рд▓реЛрдХрди , рдмрд▓реНрдХрд┐ рдпрд╣ рднреА рдПрдХ рдкреЛрд╕реНрдЯ рд╣реИ рдХрд┐ рдкреА ++ рдПрдХ рдЧреИрд░-рддрдХрдиреАрдХреА рджреГрд╖реНрдЯрд┐рдХреЛрдг рд╕реЗ рдПрдХ рдмреБрд░рд╛ рд╡рд┐рдЪрд╛рд░ рдХреНрдпреЛрдВ рд╣реИ ред
рдХрд┐рд╕реА рдиреЗ P-- рдмрдирд╛рдиреЗ рдХрд╛ рд╕реБрдЭрд╛рд╡ рднреА рджрд┐рдпрд╛ - PHP 5.0 рд╕реЗ PHP рдХреЛ рд╕рд░рд▓ рдмрдирд╛рдпрд╛, рдпрд╛ P === - рдЬреИрд╕рд╛ рд╣реИ рд╡реИрд╕рд╛ рд╣реА рдЫреЛрдбрд╝ рджреЗрдВред
рд╕реМрднрд╛рдЧреНрдп рд╕реЗ, рдЗрд╕рд╕реЗ рдкрд╣рд▓реЗ рдХрд┐ рд╕рдм рдХреБрдЫ рдмрд╣реБрдд рджреВрд░ рдЪрд▓рд╛ рдЧрдпрд╛, рдбреЗрд░рд┐рдХ рд░реАрдердВрд╕ (Xdebug рдХреЗ рд▓реЗрдЦрдХ) рдиреЗ рдПрдХ рд╕рд╛рдзрд╛рд░рдг рдкреНрд░рд╢реНрди рдХреЗ рд╕рд╛рде рдПрдХ рдкреЛрд▓ рд▓реЙрдиреНрдЪ рдХрд┐рдпрд╛: рдХреНрдпрд╛ рдкреА ++ рдХрд╛ рд╡рд┐рдЪрд╛рд░ рд╕рд┐рджреНрдзрд╛рдВрдд рд░реВрдк рдореЗрдВ рд╕рдВрднрд╡ рд╣реИ? рдкреВрд░реЗ PHP рдЗрдВрдЯрд░рдиреИрд╢рдирд▓ рд╕рдореБрджрд╛рдп рдиреЗ рдЬрд╝реАрд╡ рд╕рд╣рд┐рдд рдЕрдкреНрд░рддреНрдпрд╛рд╢рд┐рдд рд░реВрдк рд╕реЗ, рдХреЗ рдЦрд┐рд▓рд╛рдл рд╕рд░реНрд╡рд╕рдореНрдорддрд┐ рд╕реЗ рдорддрджрд╛рди рдХрд┐рдпрд╛ ред рдЗрд╕ рд╡рд┐рдЪрд╛рд░ рдкрд░ рдЖрдк P ++ рдХреЛ рднреВрд▓ рд╕рдХрддреЗ рд╣реИрдВред - [RFC] рд╕рдВрдХреНрд╖рд┐рдкреНрдд рдЦреБрд▓реЗ рдЯреИрдЧреЛрдВ рдХреЛ рдлрд┐рд░ рд╕реЗ рдЬрдорд╛ рдХрд░реЗрдВ - рдХрдИ рдпреЛрдЧрджрд╛рдирдХрд░реНрддрд╛рдУрдВ рдиреЗ рднрд╡рд┐рд╖реНрдп рдореЗрдВ PHP рд╕реЗ рдЫреЛрдЯреЗ рдЯреИрдЧреНрд╕ рдХреЛ рд╣рдЯрд╛рдиреЗ рдХрд╛ рд╡рд┐рдХрд▓реНрдк рдЪреБрдирд╛ , рдФрд░ рдлрд┐рд░ рд╕реЗ рд╡реЛрдЯрд┐рдВрдЧ рдиреЗ рдЖрд╡рд╢реНрдпрдХ рд╕реАрдорд╛ рдХреЛ рдкрд╛рд░ рдирд╣реАрдВ рдХрд┐рдпрд╛ред рдХреБрд▓ рд▓рдШреБ рдЯреИрдЧ рдЕрдЧрд▓реЗ 5+ рд╡рд░реНрд╖реЛрдВ рддрдХ рдмрдиреЗ рд░рд╣реЗрдВрдЧреЗред
- [PoC] throw_legacy_failure рдШреЛрд╖рд┐рдд рдмрдпрд╛рди - PHP рдореЗрдВ рдПрдХ рджрд┐рд▓рдЪрд╕реНрдк рдкреАрдЖрд░ рд╕рднреА рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рдлрд┐рд░ рд╕реЗ рддреИрдпрд╛рд░ рдХрд░рдиреЗ рдХреА рдЕрд╡рдзрд╛рд░рдгрд╛ рдХреЗ рд╕рд╛рде рддрд╛рдХрд┐ рд╡реЗ
false
/ null
рд▓реМрдЯрдиреЗ рдХреЗ рдмрдЬрд╛рдп рдЕрдкрд╡рд╛рджреЛрдВ рдХреЛ рдлреЗрдВрдХ рджреЗрдВред рдпрд╣ рд╕реБрд╡рд┐рдзрд╛ declare(throw_legacy_failure=1)
рдирд┐рд░реНрджреЗрд╢ declare(throw_legacy_failure=1)
рдХреЛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдХреЗ рд╕рдХреНрд╖рдо рд╣реИред
рдЙрдкрдХрд░рдг
Symfony
Laravel
Yii
Async php
рд╕реАрдЦрдиреЗ рдХреА рд╕рд╛рдордЧреНрд░реА
рдСрдбрд┐рдпреЛ / рд╡реАрдбрд┐рдпреЛ
рдЖрдкрдХрд╛ рдзреНрдпрд╛рди рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж!
рдпрджрд┐ рдЖрдкрдХреЛ рдХреЛрдИ рдЧрд▓рддреА рдпрд╛ рдЕрд╢реБрджреНрдзрд┐ рджрд┐рдЦрддреА рд╣реИ - рдХреГрдкрдпрд╛ рдореБрдЭреЗ рдкреАрдПрдо рдХреЛ рд╕реВрдЪрд┐рдд рдХрд░реЗрдВред
рдкреНрд░рд╢реНрди рдФрд░ рд╕реБрдЭрд╛рд╡ рдореЗрд▓ рдпрд╛ рдЯреНрд╡рд┐рдЯрд░ рдкрд░ рд▓рд┐рдЦрддреЗ рд╣реИрдВред
PHP рдбрд╛рдЗрдЬреЗрд╕реНрдЯ рдЯреЗрд▓реАрдЧреНрд░рд╛рдо рдЪреИрдирд▓ рдкрд░ рдЕрдзрд┐рдХ рд╕рдорд╛рдЪрд╛рд░ рдФрд░ рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдВред
рд▓рд┐рдВрдХ рднреЗрдЬреЗрдВ
рд╕рднреА рдбрд╛рдЗрдЬреЗрд╕реНрдЯ рдХреЗ рд▓рд┐рдП рд▓рд┐рдВрдХ рдЦреЛрдЬреЗрдВ
тЖР рдкрд┐рдЫрд▓рд╛ рд░рд┐рд▓реАрдЬрд╝: PHP рдбрд╛рдЗрдЬреЗрд╕реНрдЯ рдирдВрдмрд░ 162