PHP Digest # 203 (1. - 17. Mai 2021)



Eigenschaftszugriffsarten, Typschnittpunkte und Endkonstanten werden offiziell für PHP 8.1 vorgeschlagen, und zwei weitere RFCs wurden bereits übernommen. Ebenfalls in der Veröffentlichung enthalten sind einige Tools, Videos, Podcasts, Artikel und Community-News.



Viel Spaß beim Lesen!





Nachrichten



  • PHP 7.4.19 , PHP 8.0.6 - Fehler in PDO_pgsql behoben.
  • PHP-Versionsstatistik - 2021.1 - Traditionelle Sammlung von Statistiken basierend auf den Daten, die Composer beim Herstellen einer Verbindung zu packagist.org sendet.



    • 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



  • prüfen [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
          
          





  • prüfen [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













/







Gemeinschaft



  • 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 zeigte auf der PHP Russia 2019



    mehr schwarze Magie . Und auf der PHP Russia 2021 erwarten wir mehr PHP-Wunder von ihm .Video






Wenn Sie einen Fehler oder eine Ungenauigkeit bemerken, teilen Sie uns dies bitte in einem persönlichen Habr oder Telegramm mit .

Abonnieren Sie den PHP Digest Telegram-Kanal .



Link senden

Links in allen Digests suchen

Vorherige Ausgabe: PHP-Digest # 202








All Articles