PHP Digest # 197 (11-25 janvier 2021)



Nouvelle sélection avec des liens vers des nouvelles et des documents. Dans la version: objets comme clés de tableau et autres propositions RFC pour PHP 8.1, exécutant WebAssembly en PHP, sur les collisions dans les tableaux, une partie d'outils utiles, articles, vidéos, PHP Live Digest .



Bonne lecture!









Nouvelles et communiqués





PHP Internals



  • [RFC] Object keys in arrays

    .



    $obj1 = new stdClass;
    $obj2 = new stdClass;
    
    $array = [];
    $array[$obj1] = 1;
    $array[$obj2] = 2;
    
    var_dump($array[$obj1]); // int(1)
    var_dump($array[$obj2]); // int(2)
    
          
          





    SplObjectStorage



    WeakMap



    , . . , array_*



    .



    , , , .



    , RFC Enumerations . . .
  • [RFC] Object scoped RNG Implementations

    rand()



    mt_rand()



    (seed) srand()



    . - .



    API , .

    $seed = 1234;
    $rng = new RNG\MT19937($seed);
    $array = [1, 2, 3, 4, 5];
    
    shuffle($array, $rng); //   
    
          
          



    , , , : random_bytes() random_int().

  • [RFC] var_representation(): readable alternative to var_export()

    var_export()



    , , . RFC array( )



    [ ]



    .



    var_representation($value, int $flags=0) :string



    , var_export()



    .



    brick/varexporter.
  • [RFC] Change Default mysqli Error Mode

    mysqli ( PHPLive#3 ) : . : mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);







    mysqli CodeIgniter WordPress.
  • [RFC] Dump results of expressions in `php -a` — php -a



    .
  • PHP 8.1: What's New and Changed — php.watch , PHP 8.1. RFC - .




  • fabpot/local-php-security-checker — composer.json . FriendsOfPHP/security-advisories.



    GitHub action Docker- oxcom.

  • funivan/PhpClean — PhpStorm, , , , , . .
  • wasmerio/wasmer-php — WebAssembly PHP. wasm- PHP. Rust, wasm PHP. . .
  • temporalio/sdk-php — PHP-SDK temporal.io – , , , , -.



    .. - :
    #[Workflow\WorkflowInterface]
    class LoopWorkflow
    {
        private array $values = [];
        private array $result = [];
        private $simple;
    
        public function __construct()
        {
            $this->simple = Workflow::newActivityStub(
                SimpleActivity::class,
                ActivityOptions::new()->withStartToCloseTimeout(5)
            );
        }
    
        #[SignalMethod]
        public function addValue(
            string $value
        ) {
            $this->values[] = $value;
        }
    
        #[WorkflowMethod(name: 'LoopWorkflow')]
        public function run(
            int $count
        ) {
            while (true) {
                yield Workflow::await(fn() => $this->values !== []);
                $value = array_shift($this->values);
    
                $this->result[] = yield $this->simple->echo($value);
    
                if (count($this->result) === $count) {
                    break;
                }
            }
    
            return $this->result;
        }
    }
          
          





    RoadRunner, reactphp/promise, PHP 8. , .


Symfony





Laravel





Yii





Async PHP









/







  • habr -, PHP.
  • PHP 8 — @jrf_nl, , PHP 8 .

    , PHP 1997-2017.





    Brent Roose , , .



    . . , , PHP 8.0 TypeError



    :



    var_dump(round("foo"));
          
          



    3v4l.org/pU0LD



    , , :
    $sub = substr('abcdef', 4, -4);
    if ($sub === false) {
        echo 'fail';
    } else {
        echo 'do something with $sub';
    }
    
    // PHP 5-7 > 'fail'
    // PHP 8   > 'do something with $sub'
    
          
          



    3v4l.org/Ln9g3



    : understandlegacycode.com.
  • A quoi ressemblerait PHP s'il dĂ©pendait de moi - Une sĂ©lection de fonctionnalitĂ©s souhaitables de Brent Roose: final et vide par dĂ©faut, pas de mixage, les paramĂštres et propriĂ©tĂ©s doivent ĂȘtre typĂ©s, gĂ©nĂ©riques, oĂč peut-on aller sans eux, enams, objets pour scalaires .













Aujourd'hui, il y aura le quatriÚme flux basé sur PHP Digest. Analyse des actualités et des liens du numéro avec des détails et des détails intéressants non inclus dans l'édition de texte. Invité Anton Titov avec une histoire sur un nouvel instrument. Ainsi que les résultats du dessin et un nouveau concours avec des éléphants.

À partir de 20h00 Moscou, Minsk / 19h00 Kiev.






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





Plus de nouvelles et de commentaires sur 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 № 196




All Articles