PHP Digest # 196 (1 - 11 Januari 2021)



Pilihan baru dengan tautan ke berita dan materi. Dalam rilis: rilis PHP 8.0.1, mesin MySQL pada PHP dari Vimeo dan rilis lainnya, Enum diperbarui dan proposal baru untuk PHP 8.1, "kerentanan" di Laminas, alat, artikel, video, PHP Live Digest pada pukul 20:00 waktu Moskow.



Selamat membaca!









Berita dan rilis





PHP Internals



  • [RFC] Enumerations, Round 2 β€” Enum PHP . : () , Enum ; ; value()



    . β„– 194 .
  • [RFC] Bundling ext/simdjson into core β€” PHP simdjson. ext/json json .



    , . PECL , .
  • [RFC] Array unpacking with string keys β€” PHP 5.6 :



    variadic_function(...['apple', 'banana', 'lemon']);
          
          





    PHP 7.4 :



    $parts = ['apple', 'pear'];
    $fruits = ['banana', 'orange', ...$parts, 'watermelon'];
    // ['banana', 'orange', 'apple', 'pear', 'watermelon'];
    
          
          





    . PHP 8.0 , .



    PHP 8.1 :



    $array1 = ['a' => 'apple', 'p' => 'pear'];
    $array2 = ['b' => 'banana', 'o' => 'orange'];
    $array = [...$array1, ...$array2];
    //     :
    $array = array_merge($array1, $array2);
    
          
          



  • [PR] Use 'ENT_QUOTES|ENT_SUBSTITUTE' for HTML encoding and decoding functions β€” - , htmlspecialchars()



    ENT_QUOTES



    ENT_SUBSTITUTE



    :



    β€’ ENT_QUOTES β€” WordPress

    β€’ ENT_QUOTES β€” Blade (Laravel)

    β€’ ENT_QUOTES | ENT_SUBSTITUTE β€” Twig (Symfony or Slim)

    β€’ ENT_QUOTES | ENT_SUBSTITUTE β€” CodeIgniter

    β€’ ENT_QUOTES | ENT_SUBSTITUTE β€” CakePHP

    β€’ ENT_QUOTES | ENT_SUBSTITUTE β€” Yii

    .
  • memeriksa [RFC] Restrict $GLOBALS usage β€” . $GLOBALS



    PHP 8.1
    Membaca, menulis, isset dan unset akan terus berfungsi:
    $GLOBALS['x'] = 1;
    
    echo $GLOBALS['x']
    
    isset($GLOBALS['x']);
    unset($GLOBALS['x']);
          
          





    Tetapi upaya untuk mengubah variabel itu sendiri $GLOBALS



    akan menyebabkan kesalahan:
    $GLOBALS = [];
    $GLOBALS =& $x;
    $x =& $GLOBALS;
    unset($GLOBALS);
          
          





    Selain itu, kesalahan akan terjadi jika Anda meneruskan $GLOBALS



    referensi ke fungsi:
    
    asort($GLOBALS);
    // > Compile-time error
          
          





    Semua ini menyederhanakan internal PHP dan meningkatkan kinerja operasi array PHP.


  • [RFC] Concepts to improve mysqli extension β€” PHP PDO. mysqli. , .
  • [RFC] Add array_is_list(array $array): bool β€” , true



    , 0, 1, 2 ... count($value)-1



    . is_list()



    array_is_list()



    . .



    Symfony PHP 8.1 .
  • PHP 8.1 : xxHash MurmurHash3.






Symfony





Laravel





Yii





Zend / Laminas



  • 2020 Laminas Project
  • Zend Framework / Laminas β€” «» :



    class MyClassWithToString {
        public $name;
    
        public function __construct($name) {
            $this->name = $name;
        }
    
        public function __toString() {
            return (string) $this->name;
        }
    }
    
    $input = unserialize('O:19:"MyClassWithToString":1:{s:4:"name";s:15:"/tmp/etc/passwd";}');
    if ($input instanceof MyClassWithToString) {
        unlink($input);
    }
          
          





    is_string()



    unlink()



    . , . php.net , unserializie()



    .



    , 2017 , unserialize()



    ( PHP).



    Yii.


Async PHP







  • PHP FPM Kubernetes .
  • β€” , PHP. , public/private get set

    clone-with.



    PSR-7.
  • PHP
  • habr legacy β€” , ! PHP


/




















Hari ini akan ada aliran ketiga berdasarkan PHP Digest. Analisis berita dan link dari masalah dengan detail dan detail, gambaran umum tentang apa yang dikirim, menarik tetapi tidak termasuk dalam masalah, hasil pengundian dan kontes baru dengan gajah.

Mulai pukul 20:00 Moskow, Minsk / 19:00 Kiev.






Jika Anda melihat kesalahan atau ketidakakuratan, harap beri tahu kami melalui habr atau telegram pribadi .





Lebih banyak berita dan komentar di saluran Telegram PHP Digest .



Kirim tautan

Cari tautan di semua intisari

← Edisi sebelumnya: PHP Digest # 195




All Articles