PHP рдбрд╛рдЗрдЬреЗрд╕реНрдЯ рдирдВрдмрд░ 151 (25 рдлрд░рд╡рд░реА - 11 рдорд╛рд░реНрдЪ, 2019)


рд╕рдорд╛рдЪрд╛рд░ рдФрд░ рд╕рд╛рдордЧреНрд░реА рдХреЗ рд▓рд┐рдВрдХ рдХреЗ рд╕рд╛рде рддрд╛рдЬрд╛ рдЪрдпрдиред рд░рд┐рд▓реАрдЬрд╝ рдореЗрдВ: PHP рдХреЗ рдЕрдкрдбреЗрдЯ, рд▓рд╛рд░рд╡реЗрд▓ 5.8, рдПрдХреНрд╕рдбреЗрдмрдЧ 2.7 рдФрд░ рдЕрдиреНрдп рд░рд┐рд▓реАрдЬрд╝, 3 рддрд╛рдЬрд╝рд╛ рдЖрд░рдПрдлрд╕реА, 2 рд╕реНрд╡реАрдХрд╛рд░ рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВ, рдФрд░ PHP рдЗрдВрдЯрд░рдирд▓реНрд╕ рд╕реЗ рдЕрд╡рдзрд╛рд░рдгрд╛, рдЙрдкрдпреЛрдЧреА рдЙрдкрдХрд░рдгреЛрдВ рдХрд╛ рдПрдХ рд╣рд┐рд╕реНрд╕рд╛, рдФрд░ рдмрд╣реБрдд рдХреБрдЫред

рдЕрдЪреНрдЫрд╛ рдкрдврд╝рд╛ рд╣реИ!



рд╕рдорд╛рдЪрд╛рд░ рдФрд░ рд╡рд┐рдЬреНрдЮрдкреНрддрд┐



PHP рдХреЗ рдЖрдВрддрд░рд┐рдХ


  • [RFC] рд╕рдВрдЦреНрдпрд╛ рддреБрд▓рдирд╛рдУрдВ рдХреЗ рд▓рд┐рдП рд╕рдирд░ рд╕реНрдЯреНрд░рд┐рдВрдЧ - рдЕрдкрдиреЗ рд╣рд╛рд▓ рдХреЗ RFC рдореЗрдВ, рдирд┐рдХрд┐рддрд╛ рдкреЛрдкреЛрд╡ == рдХреЗ рд╡реНрдпрд╡рд╣рд╛рд░ рдХреЛ рдмрджрд▓рдиреЗ рдФрд░ рд▓рдХреНрд╕ рддреБрд▓рдирд╛рдУрдВ рдХреЛ рдХрдо рддреНрд░реБрдЯрд┐ рд╡рд╛рд▓рд╛ рдмрдирд╛рдиреЗ рдХрд╛ рд╕реБрдЭрд╛рд╡ рджреЗрддрд╛ рд╣реИред рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ, рд╕рдВрдЦреНрдпрд╛рдУрдВ рдХреА рддреБрд▓рдирд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХреЗрд╡рд▓ рддрднреА рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдкреНрд░рд╕реНрддрд╛рд╡рд┐рдд рд╣реИ рдЬрдм рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХреА рддреБрд▓рдирд╛ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдПрдХ рд╕рдВрдЦреНрдпрд╛рддреНрдордХ рд╣реЛред рдЕрдиреНрдпрдерд╛, рд╕рдВрдЦреНрдпрд╛ рдПрдХ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдореЗрдВ рдмрджрд▓ рдЬрд╛рддреА рд╣реИ, рдФрд░ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХреА рддреБрд▓рдирд╛ рдХреА рдЬрд╛рддреА рд╣реИред

    рдпрд╣ рдкреНрд░рд╕реНрддрд╛рд╡ рддреБрд▓рдирд╛ рд╕рдВрдЪрд╛рд▓рдХреЛрдВ рдХреЗ рд╡реНрдпрд╡рд╣рд╛рд░ рдореЗрдВ рдмрджрд▓рд╛рд╡ < / >= , == ; == > , >= , < , рдФрд░ <= , switch рдирд┐рд░реНрдорд╛рдг рдХрд░рддрд╛ рд╣реИ, in_array() , sort() рдФрд░ рдЕрдиреНрдп рдЬреИрд╕реЗ рдХрд╛рд░реНрдп рдХрд░рддрд╛ рд╣реИред

    рдЬрд╡рд╛рдм рдореЗрдВ, рдХрдЯреНрдЯрд░рдкрдВрде рдХреА рдЕрд▓рдЧ-рдЕрд▓рдЧ рдбрд┐рдЧреНрд░реА рдХреЗ рд╡рд┐рдЪрд╛рд░ рдкреНрд░рд╛рдкреНрдд рд╣реБрдП рдереЗ: рдПрдХ рд╡рд┐рд╢реЗрд╖ рдзреНрд╡рдЬ рдХреА declare('strict_comparison=1'); , рдЬреЛ рд╕рд╛рдорд╛рдиреНрдп рддреМрд░ рдкрд░ == рдХреЛ рд░рджреНрдж рдХрд░рдиреЗ рдХреЗ рдкреНрд░рд╕реНрддрд╛рд╡ рд╕реЗ рдкрд╣рд▓реЗ === рдореЗрдВ рд╕рдм рдХреБрдЫ рдмрджрд▓ рджреЗрдЧрд╛ред

    рдЗрд╕ рдмреАрдЪ, 7.4 рдореЗрдВ, рд╡рд╛рд░реНрдирд┐рдВрдЧ рдХреЛ рд╕рдВрднрд╡рддрдГ рдлреЗрдВрдХ рджрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ рдпрджрд┐ рддреБрд▓рдирд╛ рдХрд╛ рдкрд░рд┐рдгрд╛рдо рдкреАрдПрдЪрдкреА 8 рдореЗрдВ рдЕрдкреЗрдХреНрд╖рд┐рдд рд╣реЛрдиреЗ рд╕реЗ рднрд┐рдиреНрди рд╣реЛрддрд╛ рд╣реИред
  • [RFC] рд╕рдВрдЦреНрдпрд╛рддреНрдордХ рддрд╛рд░реЛрдВ рдореЗрдВ рдЕрдиреБрдЧрд╛рдореА рд╡реНрд╣рд╛рдЯреНрд╕рдПрдк рдХреЛ рдЕрдиреБрдорддрд┐ рджреЗрдВ - рдПрдХ рдФрд░ рд╕реБрдЭрд╛рд╡ рдЬрд┐рд╕рдореЗрдВ рд╕реНрдерд┐рд░рддрд╛ рдореЗрдВ рд╕реБрдзрд╛рд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдбрд┐рдЬрд╝рд╛рдЗрди рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдХрдордЬреЛрд░ рдкрдбрд╝рдиреЗ рд╕реЗред рдпрд╣ рд╕рдВрдЦреНрдпрд╛рддреНрдордХ рд░реЗрдЦрд╛рдУрдВ рдХреЗ рдЕрдВрдд рдореЗрдВ рд╡реНрд╣реЙрдЯреНрд╕рдПрдк рдХреА рдЕрдиреБрдорддрд┐ рджреЗрдиреЗ рдХрд╛ рдкреНрд░рд╕реНрддрд╛рд╡ рд╣реИ, рдЬреЛ рдХрд┐ "123 " == " 123" рдФрд░ рдЕрдиреНрдп рд╕рднреА рдСрдкрд░реЗрд╢рди рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВ, рдЬреИрд╕рд╛ рдХрд┐ рдкреНрд░рдореБрдЦ рд╕реНрдерд╛рдиреЛрдВ рдХреЗ рд╕рд╛рде рд▓рд╛рдЗрдиреЛрдВ рдХреЗ рд▓рд┐рдП рд╣реИред
  • [RFC] рдЖрдВрддрд░рд┐рдХ рдХрд╛рд░реНрдпреЛрдВ рдХреЗ рд▓рд┐рдП рд▓рдЧрд╛рддрд╛рд░ рдкреНрд░рдХрд╛рд░ рдХреА рддреНрд░реБрдЯрд┐рдпрд╛рдВ - рдкреНрд░рд╕реНрддрд╛рд╡ рдХреЛ рд╕реНрд╡реАрдХрд╛рд░ рдХрд░ рд▓рд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдЬрд┐рд╕рдХрд╛ рдЕрд░реНрде рд╣реИ рдХрд┐ PHP 8 рдореЗрдВ, рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд рдлрд╝рдВрдХреНрд╢рди рдПрдХ TypeError рдХреЛ рдлреЗрдВрдХ рджреЗрдВрдЧреЗ рдпрджрд┐ рдЧрд▓рдд рдкреНрд░рдХрд╛рд░ рдХреЗ рдкреИрд░рд╛рдореАрдЯрд░ рдкрд╛рд░рд┐рдд рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВ рдФрд░, рддрджрдиреБрд╕рд╛рд░, рд╢реВрдиреНрдп рдирд╣реАрдВ рд▓реМрдЯреЗрдВрдЧреЗред
  • [RFC] рдХрдордЬреЛрд░ рд╕рдВрджрд░реНрдн - рд╕реНрд╡реАрдХрд╛рд░ рдХрд┐рдП рдЧрдП рдХрдордЬреЛрд░ рд▓рд┐рдВрдХ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рд╕реНрддрд╛рд╡ред
  • [RFC] рд▓реЙрдХреНрдб рдХреНрд▓рд╛рд╕реЗрд╕ - рдХрдХреНрд╖рд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдПрдХ рдирдпрд╛ locked рдХреАрд╡рд░реНрдб рдкреЗрд╢ рдХрд░рдирд╛ рдкреНрд░рд╕реНрддрд╛рд╡рд┐рдд рд╣реИред рдЧреБрдгреЛрдВ рдХреЗ рдЧрддрд┐рд╢реАрд▓ рдЙрдкрдпреЛрдЧ рдХреЗ рд▓рд┐рдП рдРрд╕реА рдХрдХреНрд╖рд╛рдПрдВ рдмрдВрдж рдХрд░ рджреА рдЬрд╛рдПрдВрдЧреА, рдпрд╛рдиреА рдЖрдк рдЕрдШреЛрд╖рд┐рдд рд╕рдВрдкрддреНрддрд┐рдпреЛрдВ рддрдХ рдирд╣реАрдВ рдкрд╣реБрдВрдЪ рд╕рдХрддреЗ:
    рдЫрд┐рдкрд╛ рд╣реБрдЖ рдкрд╛рда
     locked class TestClass { public $definedProp; } $t = new testClass(); $t->definedProp = "OK"; echo $t->definedProp; unset($t->definedProp); echo $t->nonExistentProp; // Error $t->nonExistentProp = "Not OK"; // Error unset($t->definedProp); // Error 
  • рд╡реАрдбрд┐рдпреЛ PHP рдЗрдВрдЯрд░рдиреИрд╢рдирд▓ рдиреНрдпреВрдЬрд╝: рдПрдкрд┐рд╕реЛрдб 1 - рд▓реЗрдЦрдХ Xdebug Derick Rethans рдХрд╛ рдирдпрд╛ рдкреЙрдбрдХрд╛рд╕реНрдЯред рдкрд╣рд▓реЗ рдЕрдВрдХ рдореЗрдВ рдирд┐рдХрд┐рддрд╛ рдкреЛрдкреЛрд╡ рдХреЗ рд╕рд╛рде рдПрдХ рдмрд╛рддрдЪреАрддред
  • __ToString рд╕реЗ рдлреЗрдВрдХрдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрдВ () - рдирд┐рдХрд┐рддрд╛ рд╕реЗ рдкреАрдЖрд░ рдПрдХ рдкреБрд░рд╛рдиреА PHP рд╕рдорд╕реНрдпрд╛рдУрдВ рдореЗрдВ рд╕реЗ рдПрдХ рдХреЗ рд▓рд┐рдП рдПрдХ рдлрд┐рдХреНрд╕ рдХреЗ рд╕рд╛рде - __toString рдореЗрдВ рдЕрдкрд╡рд╛рдж рдлреЗрдВрдХрдиреЗ рдореЗрдВ __toString ред
  • рд╕реВрдЪреА рд╕рдордЭ - PHP рдХреЗ рд▓рд┐рдП рд╕реВрдЪреА рд╕рдордЭ рдХреЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЗ рд╕рд╛рде рд╕рд╛рд░рд╛ рдЧреЛрд▓реЗрдореИрди рдХреА рдПрдХ рдЕрд╡рдзрд╛рд░рдгрд╛ред рдкрд╛рдпрдерди рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рд╕рд┐рдВрдЯреИрдХреНрд╕ рдХрдо рд╕реБрд░реБрдЪрд┐рдкреВрд░реНрдг рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рджрд┐рд▓рдЪрд╕реНрдк рд▓рдЧрддрд╛ рд╣реИ:
     $a = [1, 2, 3]; $mul = 3; $c = [ for $a as $v yield $mul * $v use ($mul) ]; 

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



Symfony



Laravel



Yii


  • Yii 2.0.16.1
  • рд░рд┐рд▓реАрдЬрд╝ рдЪрдХреНрд░ Yii - 5 рд╕рд╛рд▓ рдХреЗ рд▓рд┐рдП рдкреНрд░рдореБрдЦ рд░рд┐рд▓реАрдЬрд╝ рдХрд╛ рд╕рдорд░реНрдерди рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬрд┐рдирдореЗрдВ рд╕реЗ 2 рд╕рдХреНрд░рд┐рдп рдлрд╝рд┐рдХреНрд╕реЗрд╕ рд╣реИрдВ рдФрд░ 3 рд╕реБрд░рдХреНрд╖рд╛ рддреНрд░реБрдЯрд┐ рдлрд╝рд┐рдХреНрд╕реЗрд╕ рд╣реИрдВред
  • zhuravljov / yii2-queue-monitor - Yii2 рдХрддрд╛рд░реЛрдВ рдХреА рдирд┐рдЧрд░рд╛рдиреА рдФрд░ рдкреНрд░рдмрдВрдзрди рдХреЗ рд▓рд┐рдП рдПрдХ рд╡реЗрдм рдЗрдВрдЯрд░рдлрд╝реЗрд╕ред

Async php



рд╕реАрдЦрдиреЗ рдХреА рд╕рд╛рдордЧреНрд░реА



рдЖрдкрдХрд╛ рдзреНрдпрд╛рди рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж!

рдпрджрд┐ рдЖрдкрдХреЛ рдХреЛрдИ рдЧрд▓рддреА рдпрд╛ рдЕрд╢реБрджреНрдзрд┐ рджрд┐рдЦрддреА рд╣реИ - рдХреГрдкрдпрд╛ рдореБрдЭреЗ рдкреАрдПрдо рдХреЛ рд╕реВрдЪрд┐рдд рдХрд░реЗрдВред
рдкреНрд░рд╢реНрди рдФрд░ рд╕реБрдЭрд╛рд╡ рдореЗрд▓ рдпрд╛ рдЯреНрд╡рд┐рдЯрд░ рдкрд░ рд▓рд┐рдЦрддреЗ рд╣реИрдВред

PHP рдбрд╛рдЗрдЬреЗрд╕реНрдЯ рдЯреЗрд▓реАрдЧреНрд░рд╛рдо рдЪреИрдирд▓ рдкрд░ рдЕрдзрд┐рдХ рд╕рдорд╛рдЪрд╛рд░ рдФрд░ рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдВред

рд▓рд┐рдВрдХ рднреЗрдЬреЗрдВ
рд╕рднреА рдбрд╛рдЗрдЬреЗрд╕реНрдЯ рдХреЗ рд▓рд┐рдП рд▓рд┐рдВрдХ рдЦреЛрдЬреЗрдВ
тЖР рдкрд┐рдЫрд▓рд╛ рдЕрдВрдХ: PHP рдбрд╛рдЗрдЬреЗрд╕реНрдЯ рдирдВрдмрд░ 150

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


All Articles