PHP Digest # 203 (1 a 17 de maio de 2021)



Acessadores de propriedade, interseçÔes de tipo e constantes finais são oficialmente propostas para o PHP 8.1, e mais duas RFCs jå foram adotadas. Também no lançamento estão uma porção de ferramentas, vídeos, podcasts, artigos, notícias da comunidade.



Gostar de ler!





notĂ­cias



  • PHP 7.4.19 , PHP 8.0.6 - Corrigido bug em PDO_pgsql.
  • EstatĂ­sticas da versĂŁo do PHP - 2021.1 - Coleção tradicional de estatĂ­sticas com base nos dados que o Composer envia ao conectar-se a packagist.org.



    • 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



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





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













/







comunidade



  • 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 mostrou



    mais magia negra no PHP RĂșssia 2019. E no PHP RĂșssia 2021 esperamos mais milagres do PHP dele .vĂ­deo






Se vocĂȘ notar um erro ou imprecisĂŁo, informe-nos por meio de um habr ou telegrama pessoal .

Inscreva-se no canal PHP Digest Telegram .



Enviar link

Links de busca em todos os resumos

← NĂșmero anterior: PHP-Digest # 202








All Articles