PHP Digest # 198 (January 25 - February 8, 2021)

Photo: Ivan Gantsev .



Updating PSR-6 and PSR-13 standards, caching inheritance in opkesh, property accessors and other news from PHP Internals, Lisp dialect compiled to PHP, as well as tools, videos, podcasts and PHP Live Digest .



Enjoy reading!









News and releases



  • PHP 8.0.2, 7.4.15, 7.3.27

    SoapClient.



    7.3 . PHP 7.2 PHP .
  • PSR-6 PSR-13.

    , .



    , . PHP 8, union static



    return type



    .



    PSR-6: 1.0.0 vs 3.0.0.

    PSR-13: 1.0.0 vs 2.0.0.



  • Developer Ecosystem 2021 β€” JetBrains

    , PHP . PHP :

  • 12 , 17:00 β€” . PHP, MySQL, , .


PHP Internals



  • [RFC] Warning for implicit float to int conversions

    PHP , . , .



    , (float



    ) (int



    ) .

    var_dump(3.1415, (int) 3.1415);
    
    > float(3.1415)
    > int(3)
    
          
          



    3v4l.org/fP1aC



    RFC , float



    .
  • Inheritance Cache

    PR, .



    8% Β«Hello WorldΒ» Symfony. , . PHP , . , !

    PHP opcache, «» . // . , .



    «» (, , , , ..) .



    , . , .
  • [RFC] Property Accessors ! !

    , / .



    -, RFC :

    class User {
        public string $name { get; private set; }
    
        //   
        public string $prop { public get; private set; }
    }
    
          
          





    - :

    class Test {
        // Read-write property.
        public $prop { get; set; } //  `public $prop;`
    
        // Read-only property.
        public $prop { get; }
    }
    
          
          





    -, guard



    .

    class User {
        public string $name {
            guard {
                if (strlen($value) === 0) {
                    throw new ValueError("Name must be non-empty");
                }
            }
        }
    }
    
          
          





    -, lazy



    :

    class Test {
        public string $somethingExpensive {
            lazy {
                return computeSomethingExpensive();
            }
        }
    }
    
          
          





    2013 PHP 5.5, .



    , Internals. , , , . , .
  • [RFC] Fibers β€” . : Swoole:
    Once PHP has a stack coroutine like Fiber, we can do more than what we can do now. Since we can interrupt from PHP internal functions, then we can replace all the implementation of PHP blocking functions, such as sleep(), and we can also replace php_stream so that we can change the implementation of PDO, mysqli, and phpredis into a coroutine way, and we can also make curl become a coroutine version through libcurl's support for multiplexing.

  • [RFC] Enumerations β€” . β„–194 -.
  • [RFC] var_representation(): readable alternative to var_export() β€” , var_export()



    .
  • cross [RFC] Dump results of expressions in `php -a` β€” .
  • PHP 8.1 β€” Brent Roose. - , php.watch.



    RFC PHP RFC Watch





  • vimeo/php-mysql-engine β€” MySQL- () PHP. Matt Brown, Psalm, , Vimeo .



    : SQLite?



    ( ) , Vimeo , PDO('sqlite::memory:'):





    sqlite:           4.00 MiB  - 66 ms
    php-mysql-engine: 10.00 MiB - 330 ms
    


    , SQLite, .

  • cweagans/composer-patches β€” Cmposer, . , PR /, .
  • OndraM/ci-detector β€” CI- .
  • rakibtg/SleekDB β€” NoSQL PHP. JSON-
  • Orangesoft-Development/throttler β€” . Guzzle. .
  • sunrise-php/awesome-skeleton β€” RoadRunner Swoole. fenric.


Symfony





Laravel





Yii









/







  • Phel - A functional programming language that compiles to PHP. It is a Lisp dialect and inspired by Clojure. Sample code:
    Hidden text
    # Define a namespace
    (ns my\example)
    
    # Define a variable with name "my-name" and value "world"
    (def my-name "world")
    
    # Define a function with name "print-name" and one argument "your-name"
    (defn print-name [your-name]
      (print "hello" your-name))
    
    # Call the function
    (print-name my-name)
    
          
          












The fifth installment of the PHP Digest-inspired stream will be on the PHP Point YouTube channel today . Parsing news and links from the issue with details and details. New presenter, guest in the issue, and traditionally a competition 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 β„– 197




All Articles