PHP Digest # 200 (22 de febrero - 15 de marzo de 2021)

Foto: Grégoire Gaonach



Nueva selección con enlaces a noticias y materiales. En versión: objetos en inicializadores, espacios de nombres de extensión y otras sugerencias de RFC para PHP 8.1. PSR-11 actualizado, interfaz de reloj PSR propuesta. Una parte de herramientas útiles, videos, podcasts, artículos y PHP Digest Live a las 20:00 GMT.



¡Disfruta leyendo!









Noticias y comunicados



  • PHP 8.0.3 , PHP 7.4.16 .
  • PSR ClockInterface

    , , .



    :



    namespace Psr\Clock;
    
    interface ClockInterface
    {
        /**
         * Returns the current time as a DateTimeImmutable Object
         */
        public function now(): \DateTimeImmutable;
    }
    
          
          



  • PSR-11 Container Interface — , 1.1, , 2.0 — .
  • Git clone — . Git 2.30.2.
  • PhpStorm 2021.1 EAP — : PHP- , JSONPath video . , EAP .
  • Composer 1.x — 2021 API packagist.org .


PHP Internals



  • [RFC] New in initializers

    PHP , , , . , , — . .



    , , .



    static $x = new Foo();
    
    const C = new Foo();
    
    #[AnAttribute(new Foo())]
    class Test {
        public const C = new Foo();
        public static $prop = new Foo();
        public $prop = new Foo();
    
        public function __construct(
            private Logger $logger = new NullLogger()
        ) {}
    }
    
    function test($param = new Foo()) {}
    
          
          





    new



    , .



    . , , , , , . PHP Live.

  • [RFC] Namespaces in bundled PHP extensions

    , PHP, . .



    RFC , PHP. . OpenSSLCertificate



    OpenSSL\Certificate



    .



    , , RFC . :

    str_contains()



    -> String\contains()





    in_array()



    -> Array\contains()



    .

    PHP 9.
  • [RFC] Static variables in inherited methods

    , , . , .



    RFC , .

    class A {
        public static function counter() {
            static $i = 0;
            return ++$i;
        }
    }
    class B extends A {}
    
    var_dump(A::counter()); // int(1)
    var_dump(A::counter()); // int(2)
    var_dump(B::counter()); // int(3)
    var_dump(B::counter()); // int(4)
    
          
          





  • [RFC] Fibers

    . , . : , , PHP . , :



    Swoole. , Swoole PHP, — , .



    Joe Watkins, , /. krakjoe/parallel .



    , , — , Swoole parallel.
  • [RFC] noreturn type

    Psalm PHPStan PHP — noreturn



    .



    , , exit()



    , die()



    , trigger_error()



    .



    function redirect(string $uri): noreturn {
        header('Location: ' . $uri);
        exit();
    }
    
    function redirectToLoginPage(): noreturn {
        redirect('/login');
    }
    
          
          





    Hack, Python, Psalm, PHPStan PhpStorm #[NoReturn]



    exitpoint .phpstormmeta.php.
  • [RFC] debug_backtrace_depth(int $limit=0): int — debug_backtrace_depth(int $limit=0), . , .



    : count(debug_backtrace(DEBUG_BACKTRACE_IGNORE_ARGS, $limit=0))



    .
  • [RFC] println(string $data = ''): intprintln



    , stdout



    . str_contains()



    , , .




  • spiral/RoadRunner v2.0.0 — PHP Golang.
  • QratorLabs/Smockyrunkit7 mock- PHPUnit .
  • markdown.
  • phpize.online — PHP- 3v4l.org SQL.


Symfony



  • symfony/runtime — PHP-FPM, CLI, PHP-PM, Swoole . .
  • Symfony 6 PHP 8.0
  • ansien/RapidFormBundle — Symfony, PHP 8.
  • Symfony
  • Symfony Docker
  • CI/CD Symfony GitLab
  • Symfony #741 (8-14 2021)


Laravel



  • RCE Laravel <= v8.4.2 debug modefile_get_contents



    / file_put_contents



    FTP. facade/ignition.
  • Laravel 7 — LTS 2022.
  • spatie/laravel-remote — Artisan spatie/ssh. video Freek Van der Herten, c .
  • squirephp/squire — Eloquent ( , , .).
  • Laravel
  • habr Laravel– (22 – 7 2021)


Yii



  • habr Yii 2021, 1
  • Yii 3: yiisoft/network-utilities, yiisoft/csrf.




  • FFI PHP
  • PHP.Watch: PHP.
  • PHP — .
  • Matthias Noback: — ? — , .
  • PHP arm64 vs x86_64 — AWS ARM 20% .
  • nginx+fpm Swoole PHP API 91%github.com/appwrite.
  • PHP Xdebug 3, Docker Compose PhpStorm.
  • CI Laminas — GitHub Actions , 200+ .
  • — .
  • habr Run, config, run: Badoo
  • habr 1-:
  • habr ,




  • ru PHP- — , , .
  • ru : PHP
  • ru : ! PHP.
  • PHP Release Radar #6: Bref 1.0 — C Matthieu Napoli.


audio



  • PHP Internals News #77 — PHP 8.1 fsync David Gebler.
  • PHP Internals News #78 — C Andreas Heigl PHP Git. , , PHP Russia.
  • ru PHP №87: PHP 2021
  • ru PHP №86: PHP 8
  • ru 12: –













¡Después de un breve descanso, regresamos con una transmisión y el presentador Valentin Udaltsov!



Habrá un análisis de noticias y enlaces del número con detalles y detalles, la opinión de Valentine sobre RFC y artículos. Interesante pero no incluido en el tema, los resultados del dibujo y una nueva competencia con elefantes.



A partir de las 20:00 Moscú, Minsk / 19:00 Kiev.




Si nota un error o inexactitud, háganoslo saber en un habr o telegrama personal .





Más noticias y comentarios en el canal PHP Digest Telegram .



Enviar enlace

Buscar enlaces en todos los resúmenes

Número anterior: PHP-Digest # 199




All Articles