PHPダイジェスト#203(2021年5月1日-17日)



プロパティアクセサー、型交差、および最終定数はPHP 8.1で正式に提案されており、さらに2つのRFCがすでに採用されています。また、リリースには、ツール、ビデオ、ポッドキャスト、記事、コミュニティニュースの一部が含まれています。



読書を楽しむ!





ニュース



  • PHP 7.4.19PHP 8.0.6 - PDO_PGSQLのバグを修正しました。
  • PHPバージョン統計-2021.1-packagist.orgに接続するときにComposerが送信するデータに基づく従来の統計コレクション。



    • PHP 7.4: 45.92% (+3.31)
    • PHP 7.3: 21.30% (-5.75)
    • PHP 7.2: 12.89% (-2.39)
    • PHP 8.0: 9.44% (+9.17)
    • PHP 7.1: 5.21% (-2.24)


  • Phalcon Roadmap — , v5 . : PHP + . PHP, .
  • :



    phpcommunity.ru.



PHP Internals



  • 小切手 [RFC] Namespaces in bundled PHP extensions



    PHP! (, ..) .



    . resource



    PHP - . , PHP 8.1 :



    IMAPConnection -> IMAP\Connection
    FTPConnection -> FTP\Connection
    LDAP -> LDAP\Connection
    LDAPResult -> LDAP\Result
    LDAPResultEntry -> LDAP\ResultEntry
    PgSql -> PgSql\Connection
    PgSqlResult -> PgSql\Result
    PgSqlLob -> PgSql\Lob
          
          





  • 小切手 [RFC] Add return type declarations for internal methods



    PHP 8.0 . . , .



    , . , .



    class SomeStandardClass
    {
        public function method(): int {}
    }
    
    class UserClass extends SomeStandardClass
    {
        public function method() {}
    }
    
    // Fatal error: Declaration of UserClass::method() must be compatible with SomeStandardClass::method()
    
          
          





    . PHP 8.1 . , Deprecation notice



    . PHP 9 Fatal error



    .



    class MyDateTime extends DateTime
    {
        public function modify(string $modifier) { return false; }
    }
    
    // Deprecated: Declaration of MyDateTime::modify(string $modifier) should be compatible with DateTime::modify(string $modifier): DateTime|false
    
          
          





  • [RFC] Property Accessors



    .



    . , __get



    __set



    . C#



    :



    class Foo {
        public $prop {
            get { /* ... */ }
            set { /* ... */ }
        }
    }
    
          
          





    readonly :



    class User {
        public string $name { get; }
    
        public function __construct(string $name) {
            $this->name = $name;
        }
    }
    
          
          





    , public/private :



    class User {
        public string $name { get; private set; }
    
        ...
    }
    
          
          





    :



    class Foo {
        public int $bar {
            get {
                error_log('Getting $bar');
                return $this->bar;
            }
            set {
                assert($bar > 42);
                $this->bar = $bar;
            }
        }
    }
    
          
          





    lazy



    guard



    PHP 8.1.



  • [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 . .

  • [RFC] Deprecate ticks



    PHP : declare(ticks=1);



    . pcntl. pcntl_signal()



    pcntl_async_signals()



    . PHP 8.1 PHP 9.

  • [RFC] Final class constants



    final



    , .



    class Foo
    {
        final public const X = "foo";
    }
    
    class Bar extends Foo
    {
        public const X = "bar";
    }
    
    // Fatal error: Bar::X cannot override final constant Foo::X
    
          
          





    RFC: .

  • PHP:













Symfony







Laravel







Yii













/







コミュニティ



  • PHP - — Joe Watkins , PHP , .



    Laravel JIT :

  • 0xABADCAFE/php-demo-engine PHP. ASCII- .



  • remoteok.io index.php $101k .



    5 ؜:

  • PHP :

    $b = new class {
        function __destruct() {
            $GLOBALS['b'] = 2;
        }
    };
    
    $a = 1;
    $b = 1;
    var_dump($a + $b);
    // 3
    
          
          



    3v4l.org/WMfPP Alexander Lisachenko、PHP Russia 2019で



    より多くの黒魔術ビデオ 示しました。また、PHP Russia 2021では、彼からのPHPの奇跡増えると予想しています。






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

PHPダイジェスト テレグラムチャネルを購読します



リンクを送信

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

前号:PHP-ダイジェスト#202








All Articles