PHPダイジェスト#201(2021年3月15日から29日)



ニュースや資料へのリンクを含む新鮮なセレクション。このリリースでは、ファイバーと非同期PHPに関するすべてのほか、新しいラムダ、型の交差、その他のPHP8.1の提案があります。今後のイベント、便利なツール、記事、ポッドキャスト、ビデオ、PHPダイジェストストリームの一部。



読書を楽しむ!









ニュース





Async PHP



  • [RFC] Fibers — PHP 8.1



    Swoole - .



    — , ( ). , . PHP.



    $fiber = new Fiber(function (): void {
        $value = Fiber::suspend('suspend');
        echo "Value used to resume fiber: ", $value, "\n";
    });
    
    $value = $fiber->start();
    
    echo "Value from fiber suspending: ", $value, "\n";
    
    $fiber->resume('resume');
    
    >   :
    Value from fiber suspending: suspend
    Value used to resume fiber: resume
    
          
          





    , PHP 8.1 ?

    . ReactPHP, Amp . , , .



    :

    Fibers — PHP 8.1 — RFC PHP.Watch.

    PHP: PHP? — ReactPHP .

     

    PHP 8.1 ext-fiber. , PHP 7.2.



  • PHP — : , , /. , PHP «- ».
  • Asynchronous PHP — Multiprocessing, Multithreading & Coroutines — PHP core team Laravel.


PHP Internals



  • [RFC] Auto-capturing multi-statement closures

    Larry Garfield Nuno Moduro .



    .



    :

    $y = 1;
    
    $fn1 = fn($x) => $x + $y;
    
          
          





    :

    $fn2 = function ($x) use ($y): int {
       // ...
       return $x + $y;
    };
    
          
          





    :

    $c = 1;
    $foo = fn($a, $b):int {
      // ...
      $val = $a * $b;
      return $val * $c;
    };
    
          
          





  • [RFC] Short Functions

    RFC .



    // 
    function add(int $a, int $b): int
    {
        return $a + $b;
    }
    
    // 
    function add(int $a, int $b): int => $a + $b;
    
          
          





    :
    class Person
    {
        public function __construct(
            private string $firstName,
            private string $lastName,
        ) {}
    
        public function getFirstName(): string => $this->firstName;
    
        public function getLastName(): string => $this->lastName;
    
        public function getFullName(): string => $this->firstName . ' ' . $this->lastName;
    }
    
          
          





    , PHP
    =>



    (, , , match).

    { ... }



    , return



    .

    function



    .

    fn



    , .

    • , .


  • [RFC] Deprecations for PHP 8.1

    . PHP 8.1 dreprecation notice, PHP 9 .



    : mysqli::init()



    , key(), current(), next(), prev(), and reset() , .
  • [RFC] Pure intersection types

    PHP 8.0 , RFC .



    TypeA&TypeB



    , instanceof TypeA



    instanceof TypeB



    .



    class A {
        private Traversable&Countable $countableIterator;
    
        public function setIterator(Traversable&Countable $countableIterator): void {
            $this->countableIterator = $countableIterator;
        }
    
        public function getIterator(): Traversable&Countable {
            return $this->countableIterator;
        }
    }
    
          
          





    pure intersection types, union .
  • [Draft] Add FPM early bootstrapping mode

    Benjamin Eberlei ( PHP 8) fpm.bootstrap_file



    . , FPM . , FPM-, .



    , , , , , , .





    - auto_prepend_file.

  • PHP JIT/arm64 port — ARM PHP JIT ARM-.
  • [RFC] mysqli bind in execute — .






Symfony





Laravel





Yii









/







  • phpday:








PHPダイジェストに基づくストリームは、5分間のPHPポッドキャストの作成者であるPetrMyazinによって今日私と一緒にホストされます



この号のニュースとリンクを詳細と詳細で分析し、PhpStorm i18nAllyのプラグインについてゲストと話し合います。



19:00からモスクワ、ミンスク、キエフ。












エラーや不正確さに気付いた場合は、個人のhabrまたは電報でお知らせください





PHPダイジェスト テレグラムチャネルに関するその他のニュースとコメント



リンクを送信

すべてのダイジェストで リンクを検索

前号:PHP-ダイジェスト№200




All Articles