PHP-ダイジェスト#195(2020年12月14日〜28日)



ニュースや資料へのリンクを含む新鮮なセレクション。この号の内容:非同期PHPのファイバー、最初のネイティブ属性、PHP 8.1のショートマッチおよびその他のRFC提案、ツール、多くのビデオ、記事、ポッドキャスト。



ハッピーリーディングとハッピーニューイヤー!









PHP内部



  • [RFC]ファイバー-非同期PHPの優れた提案。詳細はTelegramチャンネルにありました要するに、これはジェネレータの改良版であり、 ReactPHP / Ampなどのライブラリに基づいて非同期コードをはるかに簡単で理解しやすいものにすることができます。





    Amp v3はまだ開発中ですが、promiseの代わりにすでにファイバーを使用しています。ここだの例:好きなものを非同期/のawaitアナログルックスは、
    use Amp\Delayed;
    use Amp\Loop;
    use function Amp\async;
    use function Amp\await;
    
    //  ,    int  ,     ,      .
    $callback = function (int $id): int {
        return await(new Delayed(1000, $id)); // Await promise resolution.
    };
    
    //  $callback  int, but is executed asynchronously.
    $result = $callback(1); //      ,  1 .
    \var_dump($result);
    
    //      ,        .
    $result = await([  //  ,    1 .
        async($callback, 2),
        async($callback, 3),
    ]);
    \var_dump($result); //   2     .
          
          



  • [RFC] #[Deprecated] Attribute — PHP 8 , . — #[Deprecated]



    . , #[Deprecated]



    , PHP E_DEPRECATED



    .



    , , .



    , PhpStorm 2020.3. , . , - final, .
  • [RFC] #[NamedParameterAlias] Attribute — PHP 8.1.



    , — . , API .



    RFC: Named Parameters explicit opt in.



    — , , .
    <?php
    
    use NamedParameterAlias;
    
    // Old function signature:
    function log($arg1) {}
    
    // New function signature introduces better name
    function log(#[NamedParameterAlias("arg1")] $message) {}
    
    log(arg1: "Hello World!");
    log(message: "Hello World!");
    
          
          



    Attribute::IS_REPEATABLE



    . , .
  • [RFC] Short matchmatch



    PHP 8 switch



    .



    switch(true) { ...



    , if-elseif-...else



    . match(true)



    .



    RFC match



    match(true)



    .

    PHP 8.0:
    $a = 3;
    
    print match (true) {
      $a < 2 => 'small',
      $a == 3 => 'medium',
      default => 'large',
    };
    
          
          



    :
    $a = 3;
    
    print match {
      $a < 2 => 'small',
      $a == 3 => 'medium',
      default => 'large',
    };
    
          
          



    «».
  • [RFC] Configurable callback to dump results of expressions in `php -a` — Tyson Andre php -a



    .



    bobthecow/psysh, PHP . .
  • [RFC] Add is_list(mixed $value): bool — RFC Tyson Andre. is_list()



    , true



    , 0, 1, 2 ... count($value)-1



    .

  • [PR] Add support for property initialization during cloning — - .
    class Foo
    {
        public $bar;
        public $baz;
    
        public function withProperties($bar, $baz)
        {
            $self = clone $this;
            $self->bar = $bar;
            $self->baz = $baz;
    
            return $self;
        }
    }
    
    class Foo
    {
        public $bar;
        public $baz;
    
        public function withProperties($bar, $baz)
        {
            return clone $this with {
                bar: $bar,
                baz: $baz,
            };
        }
    }
    
          
          









Symfony





Laravel





Yii

















面白い














今日は2番目のPHPダイジェストストリームがあります。号からのすべてのニュースとリンク+詳細、送信されたものの概要、興味深いが号には含まれていません、描画の結果、象との新しいコンテスト。

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



投票:PHPの年を要約して象を演じる






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





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



リンクを送信

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

前号:PHPダイジェスト#194




All Articles