PHP Digest # 203 (du 1er au 17 mai 2021)



Les accesseurs de propriété, les intersections de types et les constantes finales sont officiellement proposés pour PHP 8.1, et deux autres RFC ont déjà été adoptées. La version comprend également une partie des outils, des vidéos, des podcasts, des articles et des nouvelles de la communauté.



Bonne lecture!





nouvelles



  • PHP 7.4.19 , PHP 8.0.6 - Correction d'un bug dans PDO_pgsql.
  • Statistiques de version PHP - 2021.1 - Collecte traditionnelle de statistiques basées sur les données que Composer envoie lors de la connexion à 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, .
  • :

    • 18 , 3- PHP- , 19.00 — . habr PHP ?
    • 20 2021, PHP of BY Meetup #36 , 19.00 — .
    • 28 , , PHP Russia, 2021.


    phpcommunity.ru.



PHP Internals



  • Chèque [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
          
          





  • Chèque [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:



    • CLion php-src — - PHP 8.1.
    • PHP Debian/Ubuntu — PHP.Watch.






  • phpbench/phpbench 1.0.0 — . , — , CI . vidéo Release Radar #10 .
  • ergebnis/factory-bot — Doctrine ORM.
  • spatie/file-system-watcher — js- paulmillr/chokidar .
  • vtsykun/packeton — packagist composer-, composer/satis , packagist.com .
  • rybakit/phpunit-extras — expect*() PHPUnit, .
  • infection 0.23.0 — , pestphp/pest.
  • captainhookphp/captainhook — Git- PHP . , .
  • readme.so — README-. ( PHP).




Symfony



  • Symfony 5.3
  • Symfony Messenger pcntl_alarm().
  • PrestoPHP/PrestoPHP — Silex , .
  • TransMaintain — Symfony .
  • Symfony #750 (10-16 2021)




Laravel



  • laravel-arcanist/arcanist — . vidéo .
  • Wulfheart/pretty-routes — .
  • cerbero90/lazy-json — JSON- illuminate/support (Laravel).
  • mailcare/mailcaremailinator.com, Laravel.
  • habr Form Request Laravel




Yii



  • Yii 2021, 2 — Yii 3 Yii 2, , .
  • Yii 3: yiisoft/profiler, yiisoft/error-handler, yiisoft/translator, yiisoft/yii-event, yiisoft/assets.










/



  • vidéo PHP- .
  • vidéo PHPFest 2020.
  • vidéo Xdebug 3 Docker
  • vidéo PhpStorm Xdebug 3 Linux
  • l'audio PHP Internals News podcast #84 — - PHP 8.1: Ben Ramsey, Patrick Allaert.




communauté



  • 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 a montré



    plus de magie noire à PHP Russie 2019. Et à PHP Russie 2021, nous attendons plus de miracles PHP de sa part .vidéo






Si vous remarquez une erreur ou une inexactitude, veuillez nous en informer dans un habr personnel ou un télégramme .

Abonnez-vous à la chaîne PHP Digest Telegram .



Envoyer le lien

Rechercher des liens dans tous les résumés

Numéro précédent: PHP-Digest # 202








All Articles