PHP ပရိုဂရမ်တွင် Stream_context_et_et_options () သည်လက်ရှိစီးဆင်းမှုအခြေအနေအတွက်ရွေးချယ်စရာများအားလုံးကိုရယူရန်အလွန်အသုံးများသောလုပ်ဆောင်မှုတစ်ခုဖြစ်သည်။ ၎င်းကို stream_context_create () ဖြင့်ဖန်တီးထားသောအခြေအနေတွင်အသုံးပြုသည်။ ပုံမှန် PHP ပတ် 0 န်းကျင်တွင်ဤလုပ်ဆောင်မှုသည်အတော်လေးရိုးရှင်းပြီးစီးနင်းမှုနှင့်သက်ဆိုင်သော option configurations များကိုထိရောက်စွာပြန်လည်ရောက်ရှိစေနိုင်သည်။ သို့သော်ကျွန်ုပ်တို့သည် SWOOLE ပတ်ဝန်းကျင်တွင် PHP အစီအစဉ်များကိုဖြန့်ချိသောအခါကျွန်ုပ်တို့သည်တူညီသောအကျိုးသက်ရောက်မှုကိုဆက်လက်ထိန်းသိမ်းထားနိုင်သေးသနည်း။ SWOOLE ပတ်ဝန်းကျင်တွင် stream_context_get_options () ကို အသုံးပြုသောအခါ၎င်းသည်သမားရိုးကျ PHP ပတ်ဝန်းကျင်နှင့်ကိုက်ညီမှုရှိမရှိဤဆောင်းပါးသည်ဆန်းစစ်ကြည့်ပါလိမ့်မည်။
ပထမ ဦး စွာ stream_context_get_options () ၏အခြေခံအသုံးပြုမှုကိုကြည့်ကြပါစို့။ ဤလုပ်ဆောင်မှုသည်များသောအားဖြင့် stream_context_create () ကို အသုံးပြု. စီးဆင်းမှုအခြေအနေတွင်ရွေးချယ်စရာများရရန်အသုံးပြုသည်။ ဥပမာအားဖြင့်:
<?php
// တစ် ဦး stream အခြေအနေကိုဖန်တီးပါ,proxy ရွေးချယ်စရာများကိုသတ်မှတ်ပါ
$options = [
'http' => [
'proxy' => 'tcp://localhost:1080',
'request_fulluri' => true,
],
];
$context = stream_context_create($options);
// Stream အခြေအနေတွင်ရွေးချယ်စရာများကိုရယူပါ
$options = stream_context_get_options($context);
print_r($options);
?>
အထက်ဖော်ပြပါကုဒ်များတွင် HTTP proxy options များဖြင့် stream အခြေအနေကိုဖန်တီးပြီး stream_context_get_options မှတဆင့်အခြေအနေရွေးချယ်မှုများကိုထုတ်ယူပါ။ output ကိုဆင်တူသင့်သည် -
Array
(
[http] => Array
(
[proxy] => tcp://localhost:1080
[request_fulluri] => 1
)
)
SWOPE သည် PHP applications များ၏တစ်ပြိုင်နက်တည်းလုပ်ဆောင်မှုကိုသိသိသာသာတိုးတက်စေနိုင်သည့် Coroutine, Usynchronous IO နှင့်အခြားအင်္ဂါရပ်များကိုထောက်ပံ့ပေးသောစွမ်းဆောင်ရည်မြင့်ကွန်ယက်ဆက်သွယ်ရေးမူဘောင်ဖြစ်သည်။ PHP ကို SWOOLE ပတ်ဝန်းကျင်တွင်လည်ပတ်သောအခါပရိုဂရမ်သည်အထူးသဖြင့်ကွန်ယက်တောင်းဆိုမှုများနှင့် IO စစ်ဆင်ရေးများကိုကိုင်တွယ်သောအခါ,
ရိုးရာ PPP ပတ် 0 န်းကျင်များတွင် HTTP တောင်းဆိုမှုများကိုများသောအားဖြင့် 0 က်ဘ်ဆိုက်ဆာဗာများက (apache or nginx) ဖြင့်ပြုလုပ်လေ့ရှိပြီး PHP ၏ကွပ်မျက်မှုသည်ညှိနှိုင်းမှုဖြစ်သည်။ SWOOLE ပတ်ဝန်းကျင်တွင်အက်ပလီကေးရှင်းများသည်များသောအားဖြင့် SWOOLE မှပေးသော Coroutines များမှတဆင့်တောင်းဆိုမှုများကိုရယူခြင်း,
SWOOLE သည်ပြတ်တောင်းပြတ်တောင်းနှင့် coroutine features များကိုမိတ်ဆက်ပေးသော်လည်း PHP ဇာဇာလုပ်ငန်းများသည် SWOOLE တွင်စနစ်တကျအလုပ်လုပ်ဆဲဖြစ်သည် ။ ဘာဖြစ်လို့လဲဆိုတော့ SWOOLE သည် PHP Kernel ၏အခြေခံအပြုအမူကို streaming နှင့်အခြေအနေစီမံခန့်ခွဲမှုအတွက်အခြေခံအပြုအမူကိုမပြောင်းလဲပါ။ Swoole သည်စီးဆင်းမှုအပြောင်းအလဲနဲ့လုပ်ငန်းစဉ်ကို 0 င်ရောက်စွက်ဖက်ခြင်းမပြုပါက steam_context_get_options () ၏ပြန်လာရလဒ်သည်ပုံမှန် PHP ပတ်ဝန်းကျင်နှင့်အတူတူပင်ဖြစ်သင့်သည်။
သို့သော်အထူးအခြေအနေအချို့ရှိသည်။ SWOOLE ကိုအသုံးပြုပြီး Coroutine ပတ်ဝန်းကျင်တွင်စီးဆင်းမှုလည်ပတ်မှုသည် SWOOLE ၏ Coroutine Scheduuling ယန္တရားကြောင့်စီးဆင်းမှု၏အခြေအနေသို့မဟုတ်ရွေးချယ်မှုများကိုပြောင်းလဲစေနိုင်သည်။ ဥပမာအားဖြင့် SWOOLE Coroutine တွင် HTTP တောင်းဆိုမှုများကို SWOOLE ၏ပြတ်တောက်မှု iO processing ယန္တရားများဖြင့်အစားထိုးပါက,
<?php
// တည်နေSwooleCoroutines များကို ဖန်တီး. ပတ်ဝန်းကျင်တွင် streaming လုပ်ငန်းများကိုလုပ်ဆောင်ပါ
Swoole\Coroutine\run(function () {
// တစ် ဦး stream အခြေအနေကိုဖန်တီးပါ,တည်ဆောက်သည်HTTPဆောင်ရွက်ခြင်း
$options = [
'http' => [
'proxy' => 'tcp://m66.net:1080',
'request_fulluri' => true,
],
];
$context = stream_context_create($options);
// Stream အခြေအနေတွင်ရွေးချယ်စရာများကိုရယူပါ
$options = stream_context_get_options($context);
var_dump($options);
});
?>
အထက်ဖော်ပြပါကုဒ်များတွင် SWOSE ၏ Coroutine Execution စီးဆင်းမှုသည်စီးဆင်းမှုကိုပြုပြင်သည့်အခါအဖြေများသို့မဟုတ်အခြေအနေကိုညှိနှိုင်းရန်သို့မဟုတ်အပြောင်းအလဲများကိုပြုလုပ်နိုင်သည်။ ထို့ကြောင့်ပြန်လာသောရွေးချယ်စရာများသည်ပုံမှန် PHP ပတ်ဝန်းကျင်ရှိသူများနှင့်အနည်းငယ်ကွဲပြားနိုင်သည်။ အရေးအခင်းအများစုတွင်သိသာထင်ရှားသည့်ကွဲပြားခြားနားမှုများရှိနိုင်သော်လည်းစီးဆင်းမှု၏အပြုအမူသည်သတ်သတ်မှတ်မှတ်ဆိုင်ရာတောင်းဆိုမှုများသို့မဟုတ်တစ်ပြိုင်နက်တည်းကတစ်ပြိုင်နက်တည်းအခြေအနေများတွင်ကွဲပြားနိုင်သည်။
Stream_context_get_options () သည် အထူးသဖြင့် synchronous stream operations များကိုအသုံးပြုသည့်အခါ, သို့သော်ပြတ်တောင်းပြတ်တောင်းသို့မဟုတ် coroutine စစ်ဆင်ရေးများနှင့်ပတ်သက်လာသောအခါ Swooles သည်စီးဆင်းမှုကိုမည်သို့လုပ်ဆောင်သည်ကိုအကျိုးသက်ရောက်နိုင်သည်။ ဤသက်ရောက်မှုကို SWOSE ၏ Coroutine စီစဉ်ခြင်းနှင့်နောက်ခံပြတ်တောင်းပြတ်တောင်း IO အကောင်အထည်ဖော်မှုတွင်အဓိကအားဖြင့်ထင်ဟပ်သည်။ ထို့ကြောင့် SWOOLE ကိုအသုံးပြုသောအခါ developer များသည်မြင့်မားသောရှေးကတိကပတ်ဝန်းကျင်တွင်စီးဆင်းမှုကိုမှန်ကန်စွာကိုင်တွယ်နိုင်စေရန်အတွက်စီးဆင်းမှု၏အခြေအနေနှင့်ပတ် 0 န်းကျင်၏အခြေအနေကိုအထူးဂရုပြုရန်လိုအပ်သည်။
SWOOLE ကိုအသုံးပြုသောအခါ Coroutines တွင်မကြာခဏ streaming လုပ်ငန်းများကိုရှောင်ရှားရန်ကြိုးစားပါ, အထူးသဖြင့်ရှုပ်ထွေးသောရွေးချယ်စရာများကိုသတ်မှတ်ရန်သို့မဟုတ် IO-Intensive Tasks များကိုလုပ်ဆောင်ရန်လိုအပ်သည့်အခါ,
SWOOLE Coroutines များတွင်အသုံးပြုသောအခါအခြေအနေစီမံခန့်ခွဲမှုအပေါ်စီးဆင်းမှု၏ဖြစ်နိုင်ချေရှိသောသက်ရောက်မှုများကိုသေချာစွာနားလည်ရန်သေချာစေပါ။