PHP рдбрд╛рдЗрдЬреЗрд╕реНрдЯ рдирдВрдмрд░ 155 (22 рдЕрдкреНрд░реИрд▓ - 6 рдордИ, 2019)


рд╕рдорд╛рдЪрд╛рд░ рдФрд░ рд╕рд╛рдордЧреНрд░реА рдХреЗ рд▓рд┐рдВрдХ рдХреЗ рд╕рд╛рде рддрд╛рдЬрд╛ рдЪрдпрдиред рд░рд┐рд▓реАрдЬрд╝ рдореЗрдВ: PHP рдЕрдкрдбреЗрдЯ, рдХреЛрдбреЗрдкреНрд╢рди 3.0 рдФрд░ рдЕрдиреНрдп рд░рд┐рд▓реАрдЬрд╝, PHP 7.4 рдореЗрдВ рд╢реЙрд░реНрдЯ рд▓реИрдореНрдмреНрдбрд╛ рдФрд░ PHP рдЗрдВрдЯрд░рдиреИрд╢рдирд▓ рд╕реЗ рдирд╡реАрдирддрдо RFC рд╡рд╛рдХреНрдпреЛрдВ рдХрд╛ рдЕрд╡рд▓реЛрдХрди, рдЙрдкрдпреЛрдЧреА рдЯреВрд▓реНрд╕ рдХрд╛ рдПрдХ рд╣рд┐рд╕реНрд╕рд╛, рдФрд░ рдмрд╣реБрдд рдХреБрдЫред

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



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


  • PHP 7.3.5
  • PHP 7.2.18
  • PHP 7.1.29
  • рдХреЛрдб рдЕрдкрд╡рд╛рдж 3.0 - рдмреЗрд╣рддрд░ рдЗрдВрдЯрд░реИрдХреНрдЯрд┐рд╡ рдХрдВрд╕реЛрд▓, рджреЛрд╣рд░рд╛рдП рдЬрд╛рдиреЗ рд╡рд╛рд▓реЗ рдХрджрдо, PHPUnit 8 рдФрд░ рдЕрдзрд┐рдХ рдХреЗ рд▓рд┐рдП рд╕рдорд░реНрдердиред
  • рд╕рд░реНрдкрд┐рд▓ / рд░реЛрдбрд░рдирд░ 1.4.0 - рдЧреЛ рдкрд░ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд╕рд░реНрд╡рд░, рдмреИрд▓реЗрдВрд╕рд░ рдФрд░ рдкреНрд░реЛрд╕реЗрд╕ рдореИрдиреЗрдЬрд░ рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд░рдирд╛ред рд░рд┐рд▓реАрдЬрд╝ рдореЗрдВ рд╢реНрд░рдорд┐рдХреЛрдВ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕реБрд░рдХреНрд╖рд┐рдд рд╕реНрдЯреЙрдк, рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдореЗрдВ рдкрд░реНрдпрд╛рд╡рд░рдг рдЪрд░ рдХреЗ рд▓рд┐рдП рд╕рдорд░реНрдерди, рдПрдХ рдкреВрд▓ рдореЗрдВ рд╢реНрд░рдорд┐рдХреЛрдВ рдХреЛ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд░рдиреЗ рдХреА рдХреНрд╖рдорддрд╛, рдФрд░ рдмрд╣реБрдд рдХреБрдЫ рд╢рд╛рдорд┐рд▓ рд╣реИрдВред рдПрдХ рдирдИ рд╡реЗрдмрд╕рд╛рдЗрдЯ roadrunner.dev рд╣реИ ред
  • PHP рд░реВрд╕ 2019 - 17 рдордИ, рдореЙрд╕реНрдХреЛ, рдЗрдиреНрдлреЛрд╕рд┐рд╕ред рдЕрдВрддрд┐рдо рдХреАрдордд рдмрдврд╝рдиреЗ рддрдХ рдХреЗрд╡рд▓ рдХреБрдЫ рджрд┐рди рд╢реЗрд╖ рд╣реИрдВред

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


  • [RFC] рдПрд░реЛ рдлрд╝рдВрдХреНрд╢рдВрд╕ 2.0 - рдкреНрд░рд╕реНрддрд╛рд╡ рдиреЗ рд╡реЛрдЯ рдкрд╛рд░рд┐рдд рдХрд┐рдпрд╛ рдФрд░ рд╕реНрд╡реАрдХрд╛рд░ рдХрд┐рдпрд╛ рдЧрдпрд╛ред PHP рдореЗрдВ рдЕрдм рд╕рд┐рдВрдЯреИрдХреНрд╕ fn() => рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реБрдП рдЫреЛрдЯреЗ рдЕрдирд╛рдо рдлрд╝рдВрдХреНрд╢рдВрд╕ рд╣реЛрдВрдЧреЗ рдФрд░ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рд╡реИрд░рд┐рдПрдмрд▓ рдХреЛ рдмрд╛рд╣рд░реА рджрд╛рдпрд░реЗ рд╕реЗ рдорд╛рди рджреНрд╡рд╛рд░рд╛ рдХреИрдкреНрдЪрд░ рдХрд░реЗрдВрдЧреЗ:
     $y = 1; $fn = fn($x) => $x + $y; 

    рдЕрдм рддрдХ, рдлрд╝рдВрдХреНрд╢рди рдореЗрдВ рд╕рдЦреНрддреА рд╕реЗ рдХреЗрд╡рд▓ рдПрдХ рд╣реА рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ рд╣реЛ рд╕рдХрддреА рд╣реИ, рдЬрд┐рд╕рдХрд╛ рдкрд░рд┐рдгрд╛рдо рд╡рд╛рдкрд╕ рдЖ рдЬрд╛рдПрдЧрд╛ред рдорд▓реНрдЯреА-рд▓рд╛рдЗрди рдлрд╝рдВрдХреНрд╢рдВрд╕ рдХреЛ рдмрд╛рдж рдореЗрдВ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдЬреЗрдПрд╕ рдХреЗ рд░реВрдк рдореЗрдВ && рдСрдкрд░реЗрдЯрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╣реИрдХ рдХрд░рдиреЗ рд╕реЗ рдХрд╛рдо рдирд╣реАрдВ рдЪрд▓реЗрдЧрд╛:
    рдЫрд┐рдкрд╛ рд╣реБрдЖ рдкрд╛рда
     andOperator = ($x) => ($y = 10) && $x + $y; console.log(andOperator(5)); // 15 
     $andOperator = fn($x) => ($y = 10) && $x + $y; var_dump($andOperator(5)); // bool(true) 
    рд▓реЗрдХрд┐рди рдЖрдк end() рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╣реИрдХ рд▓рд╛рдЧреВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ end() :
    рдЫрд┐рдкрд╛ рд╣реБрдЖ рдкрд╛рда
     <?php function last(...$args) { return end($args); } $multipleLines = fn($x) => last( $y = $x * 10, // 10 $z = $y + 15, // 25 $x + $y + $z // 1 + 10 + 25      last() ); var_dump($multipleLines(1)); // int(36) 

    рдпрд╛ array_slice() рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ, рдЯрд┐рдк рдХреЗ рд▓рд┐рдП Grikdotnet рдХрд╛ рдзрдиреНрдпрд╡рд╛рдж:
    рдЫрд┐рдкрд╛ рд╣реБрдЖ рдкрд╛рда
     $multipleLines = fn($x) => array_slice([ $y = $x * 10, $z = $y + 15, $x + $y + $z ], -1)[0]; var_dump($multipleLines(1)); // int(36) 

  • [RFC] рдбрд┐рдкреНрд░реЗрд╕реЗрдЯ PHP рд▓рдШреБ рдЦреБрд▓реЗ рдЯреИрдЧ - рдкреНрд░рд╕реНрддрд╛рд╡ рдиреЗ рд╕рдВрдХреНрд╖рд┐рдкреНрдд рдЯреИрдЧ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рд╕рдВрднрд╛рд╡рдирд╛ рдХреЛ рд╣рдЯрд╛рдиреЗ рдХреЗ рд╡рд┐рдЪрд╛рд░ рдХреЛ рд╕рдВрдмреЛрдзрд┐рдд рдХрд┐рдпрд╛ рд╣реИ <? рд╣рд╛рд▓рд╛рдВрдХрд┐, рдпрд╣ рдЖрдХреНрд░реЛрд╢ рдФрд░ рд╡рд┐рд╡рд╛рдж рдХреА рдЖрдВрдзреА рд╕реЗ рдорд┐рд▓рд╛ред рдЗрд╕рд▓рд┐рдП, рдПрдХ рдмрд╣реБрдд рд╣реА рдорд┐рд▓рд┐рдЯрд░реА рддрд░реАрдХрд╛ рдкреНрд░рд╕реНрддрд╛рд╡рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рдЬрд┐рд╕рдореЗрдВ рдЕрдЧрд▓реЗ рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдореЗрдВ рдЕрд╡рд╕рд░ рдЙрдкрд▓рдмреНрдз рд░рд╣рддрд╛ рд╣реИ, рдФрд░ рдПрдХ рдбрд┐рдкреНрд░реЗрд╕реЗрд╢рди рдЪреЗрддрд╛рд╡рдиреА рджреА рдЬрд╛рдПрдЧреАред
  • [RFC] рдРрд░реЗ рдПрдХреНрд╕рдкреНрд░реЗрд╢рди рдореЗрдВ рд╕реНрдкреНрд░реЗрдб рдСрдкрд░реЗрдЯрд░ - рдкреНрд░рд╕реНрддрд╛рд╡ рд▓рдЧрднрдЧ рд╕рд░реНрд╡рд╕рдореНрдорддрд┐ рд╕реЗ рд╕реНрд╡реАрдХрд╛рд░ рдХрд┐рдпрд╛ рдЧрдпрд╛ред рдСрдкрд░реЗрдЯрд░ ... рдЕрдм рд╕рд░рдгрд┐рдпреЛрдВ рдореЗрдВ рдЙрдкрд▓рдмреНрдз рд╣реЛрдЧрд╛ред
    рдЫрд┐рдкрд╛ рд╣реБрдЖ рдкрд╛рда
     $parts = ['apple', 'pear']; $fruits = ['banana', 'orange', ...$parts, 'watermelon']; // ['banana', 'orange', 'apple', 'pear', 'watermelon']; 
    рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реБрдП, рдЖрдк itter_to_array рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рдмрдЬрд╛рдп рдПрдХ рдкреБрдирд░рд╛рд╡реГрддреНрддрд┐ рдХреЛ рдЬрд▓реНрджреА рд╕реЗ рдПрдХ рд╕рд░рдгреА рдореЗрдВ рдмрджрд▓ рд╕рдХрддреЗ рд╣реИрдВ:
     $array = [...$iter]; 
  • RFC: __toString () рд╕реЗ рдЕрдкрд╡рд╛рджреЛрдВ рдХреЛ рдлреЗрдВрдХрдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрдВ - рдирд┐рдХрд┐рддрд╛ рдПрдХ-рдПрдХ рдХрд░рдХреЗ "PHP рдХреЗ рджреБрдГрдЦ" рдХреЛ рд╡реНрдпрд╡рд╕реНрдерд┐рдд рд░реВрдк рд╕реЗ рдареАрдХ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЬрд╛рд░реА рд╣реИред рдЗрд╕ рдмрд╛рд░ рд╣рдо __toString() рдореЗрдВ рдПрдХ рдЕрдкрд╡рд╛рдж рдХреЛ рдлреЗрдВрдХрдиреЗ рдХреА рдХреНрд╖рдорддрд╛ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░ рд░рд╣реЗ рд╣реИрдВред PHP 7.4 рдХреЗ рд▓рд┐рдП рдПрдХ рдФрд░ рдЕрдЪреНрдЫрд╛ рдФрд░ рд╕рднреА рддреБрдЪреНрдЫ рд╕реБрдзрд╛рд░ рдирд╣реАрдВ, рдЬреЛ рд╕рднреА рдкреНрд░рдХрд╛рд░ рдХреЗ рд╡рд░реНрдХрдЕрд░рд╛рдЙрдВрдб 1 , 2 рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдХреЛ рд╕рдорд╛рдкреНрдд рдХрд░рддрд╛ рд╣реИред
  • рдСрдбрд┐рдпреЛ PHP рдЗрдВрдЯрд░рдиреИрд╢рдирд▓ рдиреНрдпреВрдЬрд╝ # 7 - рдбреЗрд░рд┐рдХ рд░реАрдереИрди Zeev Surasky рдХреЗ рд╕рд╛рде PHP 8 рдореЗрдВ JIT рдФрд░ рдкрд╣рд▓реЗ рдХреЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЗ рдкреНрд░рдпрд╛рд╕реЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░рддрд╛ рд╣реИред
  • рдСрдбрд┐рдпреЛ PHP рдЗрдВрдЯрд░рдиреИрд╢рдирд▓ рдиреНрдпреВрдЬрд╝ # 8 - рд╢реЙрд░реНрдЯ рдЯреИрдЧреНрд╕ рдкрд░ рдЬреЙрд░реНрдЬ рдбреЛрдирд╛рд░реНрдб, рдкреАрдПрдЪрдкреА рдбреЙрдХреНрдпреВрдореЗрдВрдЯреЗрд╢рди рдпреЛрдЧрджрд╛рдирдХрд░реНрддрд╛ рдХреЗ рд╕рд╛рде рдмрд╛рддрдЪреАрддред

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



Symfony



Laravel



Yii



Async php



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



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

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

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

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

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


All Articles