PHPダイジェスト#199(2021年2月8日〜22日)



PHP 8.1には列挙型があり、さらに2つが承認され、2つが拒否され、3つがPHP8.1の新しいRFCになります。WordPressはサイトの40%で使用されています。strict_typesを削除する必要がある理由、空()を使用しない理由、およびツール、ビデオ、記事、ポッドキャスト、およびグリニッジ標準時10:00のPHPダイジェストライブ



読書を楽しむ!









ニュースとリリース





PHP Internals



  • 小切手 [RFC] Enumerations

    44 7 . PHP 8.1 enum.



    enum RfcStatus {
        case Draft;
        case UnderDiscussion;
        case Accepted;
    }
    
    function setRfcStatus(RfcStatus $status) :void {
        // ...
    }
    
    setRFCStatus(RfcStatus::Accepted); // 
    setRFCStatus('Draft');                     // Deprecation notice  8.1, TypeError  9.0
    
          
          





    RFC php.watch.



    Symfony .
  • 小切手 [RFC] Deprecate passing null to non-nullable arguments of internal functions

    PHP null



    , nullable



    .



    PHP 8.1 TypeError



    . , str_contains("", null)



    . 3v4l.org/OVoa0A.



    : , PHP.
  • 小切手 [RFC] Array unpacking with string keys

    PHP 8.1 , :



    $array1 = ['a' => 'apple', 'p' => 'pear'];
    $array2 = ['b' => 'banana', 'o' => 'orange'];
    $array = [...$array1, ...$array2];
    //     :
    $array = array_merge($array1, $array2);
    
          
          



  • [RFC] Fibers

    , .



    Fiber API Ruby.



    ReactPHP trowski/react-fiber:



    
    $loop = new FiberLoop(Factory::create());
    
    $browser = new Browser($loop);
    
    $request = function (string $method, string $url) use ($browser, $loop): void {
        /** @var Response $response */
        $response = $loop->await($browser->requestStreaming($method, $url));
    
        /** @var ReadableStreamInterface $stream */
        $stream = $response->getBody();
    
        $body = $loop->await(Stream\buffer($stream));
    
        var_dump(\sprintf(
            '%s %s; Status: %d; Body length: %d',
            $method,
            $url,
            $response->getStatusCode(),
            \strlen($body)
        ));
    };
    
    $requests = [];
    
    $requests[] = $loop->async($request, 'GET', 'https://reactphp.org');
    $requests[] = $loop->async($request, 'GET', 'https://google.com');
    $requests[] = $loop->async($request, 'GET', 'https://www.php.net');
    
    $loop->await(Promise\all($requests));
    
          
          



  • [RFC] CachedIterable (rewindable, allows any key&repeating keys)

    Tyson Andre . .
  • Proposal: namespace the SPL

    Spl



    : Spl\FixedArray



    -> SplFixedArray



    . , CachedIterable



    ReverseIterator



    .



    azjezz/psl.

  • [RFC] mysqli bind in execute

    Kamil Tekiela mysqli



    . RFC mysqli_stmt::execute()



    . , , mysqli_stmt::bind_param()



    . , bind_param .
  • クロス [RFC] PHP\iterable\any() and all() on iterablesany()



    all()



    .
  • クロス [RFC] var_representation(): readable alternative to var_export()var_export



    , brick/varexporter.
  • [Draft] Unify PHP's typing modes — PHP . — , , – strict_types=1



    – . , , .



    George Peter Banyard, RFC.



    .
  • Observer API PHP 8 — API . Xdebug, APM- New Relic, Tideways, ..






Symfony





Laravel





Yii





Async PHP



  • swow/swow — PHP, libuv, , PDO, file_get_ontents() .. ( ). , Swoole.


phpstorm PhpStorm









/





面白い



  • mario-deluna / php-renderは、FFIを使用しなくても、純粋なPHP3Dレンダラーです。シェーダー、.objファイルのパーサーなど。サンプル



    コード
















すでにPHPダイジェストに基づく従来のストリーム。詳細と追加の詳細を含む問題からのニュースとリンクの解析があります。

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






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





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



リンクを送信

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

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




All Articles