ရိုးရာ PHP ပရိုဂရမ်စနစ်တွင် code ကိုပုံမှန်အားဖြင့်ကွပ်မျက်ခံရလေ့ရှိသည်။ ပြတ်တောင်းပြတ်တောင်းအစီအစဉ်သည်အဓိကအကြောင်းအရာများကိုပိတ်ဆို့ခြင်းမပြုဘဲအလုပ်မျိုးစုံကိုတစ်ပြိုင်နက်တည်းလည်ပတ်ရန်ခွင့်ပြုထားသည်။
PHP ၏ allynchronous programming ကို Event Loops နှင့် Callback funvents များမှတဆင့်အကောင်အထည်ဖော်နိုင်သည်။ ဤယန္တရားကိုအလွန်အမင်းတစ်ပြိုင်နက်တည်းဆိုသည့်ကွန်ယက် 0 န်ဆောင်မှုများ, အချိန်နှင့်တပြေးညီစနစ်များနှင့်အချိန်ကိုက်ခြင်းများတွင်ကျယ်ကျယ်ပြန့်ပြန့်အသုံးပြုသည်။
Libev သည် Excending လုပ်ခြင်းနှင့်အစပျိုးလိုက်သောအခါနားထောင်နိုင်သည့်ထိရောက်သောကွင်းဆက်ယန္တရားကိုထောက်ပံ့ပေးသော PHP ၏စာကြည့်တိုက်တစ်စောင်ဖြစ်သည်။ Libev ကိုစတင်သုံးရန်သင်ပထမ ဦး ဆုံး extension ကို install လုပ်ရန်လိုအပ်ပြီးအောက်ပါကုဒ်နံပါတ်နှင့်အတူဖြစ်ရပ် loop ကိုစတင်ရန်လိုအပ်သည်။
require 'vendor/autoload.php';
$loop = new \LibEv\EventLoop();
အထက်ဖော်ပြပါကုဒ်သည်ကွန်ယက်ဖြစ်ရပ်များ,
အောက်ပါဥပမာသည် Libev ကိုအသုံးပြုနည်းကို Main Client Concernous ဝက်ဘ်ဆာဗာတစ်ခုဖန်တီးရန် Libev ကိုမည်သို့အသုံးပြုရမည်ကိုပြသသည်။
use \LibEv\EventLoop;
use \LibEv\IO\Stream\Server;
$loop = new EventLoop();
$server = new Server($loop, '127.0.0.1', 8080);
$server->on('connection', function(Server $server, Stream $client) {
echo 'New client connected';
});
$loop->run();
ဤဥပမာရှိဆာဗာသည် port 8080 နှင့်ဆက်သွယ်မှုအသစ်တစ်ခုကိုရှာဖွေတွေ့ရှိသည်နှင့်တစ်ပြိုင်နက် callback function ကိုလုပ်ဆောင်သည်။ တစ်ချိန်တည်းမှာပင်ထိုအဖြစ်အပျက်သည်ကွင်းဆက်ဆက်လက်လုပ်ကိုင်နေပြီးတစ်ပြိုင်တည်းဆက်သွယ်မှုမျိုးစုံကိုတစ်ပြိုင်တည်းထုတ်ယူခြင်းကိုအထောက်အကူပြုသည်။
ပြတ်တောင်းပြတ်တောင်းအစီအစဉ်တွင်အချိန်ဇယားများ၌ Timers များသည်အလွန်အသုံးများသောလုပ်ဆောင်မှုတစ်ခုဖြစ်သည်။ ၎င်းသည်အလိုအလျောက်ခေါ်ဆိုမှုများကိုသတ်မှတ်ထားသောအချိန်ကြားကာလအပြီးတွင်အစပျိုးရန်ခွင့်ပြုသည်။ အောက်ပါဥပမာသည် Libev ကို သုံး. Periodic Timer ကိုမည်သို့ဖန်တီးရမည်ကိုပြသသည်။
use \LibEv\EventLoop;
use \LibEv\Timer;
$loop = new EventLoop();
$timer = new Timer($loop, 1.0, true); // အခြားတိုင်း 1 စက္ကန့်အတွင်းတစ်ကြိမ် Execute
$timer->on('timeout', function(Timer $timer) {
echo 'Timer has timed out';
});
$loop->run();
ဤအချိန်ဇယားသည်ဒုတိယအကြိမ်ပြန်ခေါ်ချက်ကိုဒုတိယအကြိမ်ပြန်ခေါ်ပြီး log refresh, အရင်းအမြစ်စောင့်ကြည့်လေ့လာခြင်းသို့မဟုတ်အလုပ်စီစဉ်ခြင်းစသည့် Periodic လုပ်ငန်းများကိုလုပ်ဆောင်ရန်အသုံးပြုနိုင်သည်။
Event Loops နှင့် Callback ယန္တရားများကိုအသုံးပြုခြင်းအားဖြင့် PHP သည်အမှန်တကယ်ပြတ်တောင်းပြတ်တောင်းအစီအစဉ်များကိုအကောင်အထည်ဖော်နိုင်သည်။ Libev Extension ၏အကူအညီဖြင့် developer များက at developer များကပြတ်တောင်းပြတ်တောင်းကွန်ယက်ဆာဗာများ, အချိန်ကောင်းလုပ်ငန်းများနှင့်စိတ်ကြိုက်ပြုလုပ်မည့်နေရာများနှင့်ဓလေ့ထုံးတမ်းဆိုင်ရာဖြစ်ရပ်များနှင့်အလွယ်တကူပြုလုပ်နိုင်သည်။