PHP рдбрд╛рдЗрдЬреЗрд╕реНрдЯ рдирдВрдмрд░ 178 (6 рдЕрдкреНрд░реИрд▓ - 21, 2020)


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

рдкрдврд╝рдиреЗ рдХрд╛ рдордЬрд╝рд╛ рд▓реЗрдВ!


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



PHP Internals


  • [RFC] throw expression тАФ PHP 8 throw , . , , :

    $callable = fn() => throw new Exception();
    
    $foo = $bar['key'] ?? throw new KeyNotSetOnBarException();
    
  • [RFC] Attributes v2 тАФ () . , , , , . .

    , . : <<>> @:.

    <<ExampleAttribute>>
    class Foo
    {
        <<ExampleAttribute>>
        public const FOO = 'foo';
    
        <<ExampleAttribute>>
        public $x;
    
        <<ExampleAttribute>>
        public function foo(<<ExampleAttribute>> $bar) { }
    }
    
    $object = new <<ExampleAttribute>> class () { };
    
    <<ExampleAttribute>>
    function f1() { }
    
    $f2 = <<ExampleAttribute>> function () { };
    
    $f3 = <<ExampleAttribute>> fn () => 1;
    
  • [RFC] PHP Namespace in core, [RFC] PHP Namespace Policy тАФ RFC-, \PHP , .
  • [RFC] Mixed Type v2 тАФ , , - . mixed .

    PHP 8. mixed array|bool|callable|int|float|null|object|resource|string.
  • [RFC] non-capturing catches тАФ catch:

    try {
        changeImportantData();
    } catch (PermissionException) { // The intention is clear: exception details are irrelevant
        echo "You don't have permission to do this";
    }
    
  • [RFC] Match expression тАФ switch match, switch, . -.

    match ($condition) {
        1 => {
            foo();
            bar();
        },
        2 => baz(),
    }
    
    $expressionResult = match ($condition) {
        1, 2 => foo(),
        3, 4 => bar(),
        default => baz(),
    };
    
  • [RFC] Pipe Operator v2 тАФ |> c . Elixir / JS (Hack) $$.

    $result = "Hello World"
        |> 'htmlentities'
        |> 'explode'
        |> fn($x) => array_map(fn($v) => 'strtoupper', $x)
        |> fn($x) => array_filter(fn($v) => $v != 'O');
    
  • : [RFC] Compact Object Property Assignment



Symfony



Laravel



Laminas



Async PHP





/



!

тАФ , , .
.

Telegram- PHP Digest.



тЖР : PHP- тДЦ 177


All Articles