Rumah > Artikel > pembangunan bahagian belakang > Bagaimana untuk melaksanakan pengaturcaraan tak segerak di bahagian bawah PHP
Cara melaksanakan pengaturcaraan tak segerak di bahagian bawah PHP memerlukan contoh kod khusus
Dalam model pengaturcaraan tradisional, PHP ialah bahasa pengaturcaraan segerak berasaskan benang, iaitu setiap permintaan akan diproses secara berurutan di bahagian pelayan sehingga satu Selepas pemprosesan permintaan selesai, permintaan seterusnya akan diproses. Walau bagaimanapun, dengan peningkatan kerumitan aplikasi Internet dan peningkatan dalam akses, model penyegerakan ini tidak lagi dapat memenuhi keperluan untuk konkurensi tinggi dan kependaman rendah.
Untuk menyelesaikan masalah ini, PHP mula memperkenalkan model pengaturcaraan tak segerak, membolehkan pelayan mengendalikan berbilang permintaan pada masa yang sama dan meningkatkan prestasi sistem. Berikut akan memperkenalkan cara untuk melaksanakan pengaturcaraan tak segerak asas PHP dan menyediakan beberapa contoh kod khusus.
1. Gunakan perpustakaan sambungan acara
event ialah perpustakaan sambungan PHP yang menyediakan sokongan untuk pengaturcaraan dipacu acara dan boleh melaksanakan pengaturcaraan tak segerak dalam PHP. Mula-mula, anda perlu memasang pustaka sambungan acara, yang boleh dipasang melalui PECL atau kod sumber.
Selepas pemasangan berjaya, anda boleh menggunakan contoh kod berikut untuk mengalami penggunaan pustaka sambungan acara:
<?php $base = new EventBase(); $event = new Event($base, -1, Event::TIMEOUT, function ($fd, $flag, $arg) { echo "timeout "; }); $event->addTimer(3); $base->loop();
Dalam kod di atas, mula-mula buat objek EventBase untuk menyimpan keadaan gelung acara. Kemudian buat objek Acara, tentukan fungsi panggil balik acara dan jenis acara sebagai TIMEOUT. Kemudian tetapkan tamat masa acara kepada 3 saat melalui kaedah addTimer(). Akhirnya, gelung peristiwa dimulakan melalui kaedah gelung().
2. Gunakan perpustakaan sambungan swoole
swoole ialah rangka kerja komunikasi rangkaian tak segerak berprestasi tinggi Ia menyediakan satu set IO tak segerak, protokol rangkaian, berbilang proses, fungsi pelayan HTTP dan WebSocket. Perlu diingatkan bahawa perpustakaan sambungan swoole memerlukan penggunaan ciri coroutine PHP untuk melaksanakan pengaturcaraan tak segerak.
Pertama, anda perlu memasang perpustakaan sambungan swoole, yang boleh dipasang melalui PECL atau kod sumber.
Selepas pemasangan berjaya, anda boleh menggunakan contoh kod berikut untuk mengalami penggunaan pustaka sambungan swoole:
<?php $server = new SwooleServer('0.0.0.0', 9501); $server->on('Connect', function ($server, $fd) { echo "Client {$fd} connected. "; }); $server->on('Receive', function ($server, $fd, $from_id, $data) { $server->send($fd, "Server received: " . $data); }); $server->on('Close', function ($server, $fd) { echo "Client {$fd} closed. "; }); $server->start();
Dalam kod di atas, objek Pelayan pertama kali dibuat dan acara Sambung, Terima dan Tutup diikat melalui on () fungsi panggil balik. Kemudian mulakan pelayan melalui kaedah mula().
3. Gunakan pustaka ReactPHP
ReactPHP ialah rangka kerja I/O tanpa sekatan dipacu peristiwa yang menyediakan satu set komponen untuk menulis aplikasi tak segerak, berskala dan berprestasi tinggi. ReactPHP bukan perpustakaan sambungan, tetapi perpustakaan PHP tulen yang boleh dipasang melalui Komposer.
Anda boleh menggunakan contoh kod berikut untuk mengalami penggunaan perpustakaan ReactPHP:
<?php $loop = ReactEventLoopFactory::create(); $loop->addPeriodicTimer(1, function () { echo "Hello, World! "; }); $loop->run();
Dalam kod di atas, objek EventLoop pertama kali dicipta melalui kaedah Factory::create() untuk menyimpan keadaan gelung acara. Kemudian selang peristiwa ditetapkan kepada 1 saat melalui kaedah addPeriodicTimer() dan fungsi panggil balik acara ditentukan. Akhirnya, gelung acara dimulakan melalui kaedah run().
Ringkasan
Artikel ini memperkenalkan cara melaksanakan pengaturcaraan tak segerak di bahagian bawah PHP, dan menyediakan tiga perpustakaan dan rangka kerja sambungan yang biasa digunakan, acara, swoole dan ReactPHP. Pengaturcaraan tak segerak boleh meningkatkan prestasi dan keupayaan pemprosesan serentak program PHP, dan sesuai untuk senario aplikasi Internet dengan trafik yang besar dan serentak yang tinggi. Pembaca boleh berlatih melalui kod sampel untuk lebih memahami dan menguasai penggunaan pengaturcaraan tak segerak.
Atas ialah kandungan terperinci Bagaimana untuk melaksanakan pengaturcaraan tak segerak di bahagian bawah PHP. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!