PHP Digest # 197 (11-25 Januari 2021)



Pilihan baru dengan tautan ke berita dan materi. Dalam rilisnya: objek sebagai kunci array dan proposal RFC lainnya untuk PHP 8.1, menjalankan WebAssembly dalam PHP, tentang tabrakan dalam array, bagian dari alat yang berguna, artikel, video, PHP Live Digest .



Selamat membaca!









Berita dan rilis





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.
  • Bagaimana PHP akan terlihat jika bergantung pada saya - Pilihan fitur yang diinginkan dari Brent Roose: final dan batal secara default, tidak ada campuran, parameter dan properti harus diketik, generik, di mana kita bisa pergi tanpanya, email, objek untuk skalar .













Hari ini akan ada aliran keempat berdasarkan PHP Digest. Penguraian berita dan tautan dari masalah dengan detail dan detail menarik tidak termasuk dalam edisi teks. Tamu Anton Titov dengan cerita tentang instrumen baru. Serta hasil undian dan kompetisi 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 β„– 196




All Articles