PHP Digest # 196 (January 1 - 11, 2021)



Fresh selection with links to news and materials. In release: PHP 8.0.1 release, MySQL engine on PHP from Vimeo and other releases, updated Enum and fresh proposals for PHP 8.1, "vulnerability" in Laminas, tools, articles, videos, PHP Live Digest at 20:00 Moscow time.



Enjoy reading!









News and releases





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

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



    PHP 8.1
    , , isset unset:
    $GLOBALS['x'] = 1;
    
    echo $GLOBALS['x']
    
    isset($GLOBALS['x']);
    unset($GLOBALS['x']);
          
          





    $GLOBALS



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





    , $GLOBALS



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





    PHP 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


/




















Today there will be the third stream based on PHP Digest. Analysis of news and links from the issue with details and details, an overview of what was sent, interesting but not included in the issue, the results of the drawing and a new contest with elephants.

Beginning at 20:00 Moscow, Minsk / 19:00 Kiev.






If you notice an error or inaccuracy, please let us know in a personal habr or telegram .





More news and comments on the PHP Digest Telegram channel .



Send link

Search links in all digests

← Previous issue: PHP Digest # 195




All Articles