PHP Development တွင် Php Development တွင်မကြာခဏခေါ်ဆိုမှုသည်အလွန်အသုံးများသောဇာတ်လမ်းတစ်ပုဒ်ဖြစ်သည်။ အထူးသဖြင့် Microssvice ဗိသုကာများအကြားကွဲပြားခြားနားသော 0 န်ဆောင်မှုများအကြားဆက်သွယ်မှုသည် HTTP တောင်းဆိုမှုများအပေါ်တွင်မူတည်သည်။ ဆံပင်ကောက်ကောက် သည် HTTP တောင်းဆိုမှုများကိုကိုင်တွယ်ရန် PHP တွင်အသုံးချဆုံးသော extension ဖြစ်သည်။ တောင်းဆိုမှုတစ်ခုတည်း၏စွမ်းဆောင်ရည်သည်များသောအားဖြင့်လက်ခံနိုင်ဖွယ်ဖြစ်သော်လည်းတစ်ပြိုင်နက်တည်းကတစ်ပြိုင်နက်တည်းက concurrencency အခြေအနေများတွင်တောင်းဆိုမှုတစ်ခုချင်းစီသည်ဆက်သွယ်မှုအရင်းအမြစ်ကိုအကြိမ်ကြိမ်မဟုတ်ဘဲအတော်အတန်စွမ်းဆောင်ရည်ကိုဖြစ်ပေါ်စေလိမ့်မည်။
ဤအချိန်တွင် curl_share_init () function သည်အသုံးဝင်သည်။ ၎င်းသည် DNS cache, ssl sessions များစသည်တို့ကဲ့သို့သောသတင်းအချက်အလက်များကိုမျှဝေရန်ဆံပင်ကောက်ကောက်အမျိုးမျိုးကိုခွင့်ပြုသည့်သယံဇာတခွဲဝေမှုယန္တရားကိုထောက်ပံ့ပေးသည်။
curl_share_init () သည် curl by curl mank ကိုပြန်ပို့သော curl မှပေးသောသယံဇာတမျှဝေခြင်းဆိုင်ရာ function ကိုဖြစ်သည်။ ဤလက်ကိုင်နှင့်အတူ, သင်သည်တိကျသောအရင်းအမြစ်များကိုမျှဝေရန် curl တောင်းဆိုမှုများကို configure လုပ်နိုင်ပါတယ်။
DNS cache ( curlshopt_share နှင့် curl_lock_data_dns )
ကွတ်ကီးများ ( curlshopt_share နှင့် curl_lok_data_cookie )
SSL sessions များ ( curlshopt_share နှင့် curl_lock_data_ssless_session )
ဤမျှဝေထားသောအချက်အလက်များသည်တောင်းဆိုမှုတစ်ခု၏ထပ်ခါတလဲလဲတွက်ချက်မှုများနှင့်လက်ဆွဲနှုတ်ဆက်ခြင်းကိုသိသိသာသာလျှော့ချနိုင်သည်။
ဥပမာ - 0 န်ဆောင်မှုမျက်နှာပြင်မျိုးစုံကိုတစ်ပြိုင်တည်းတောင်းခံဖို့လိုတယ်ဆိုပါစို့။
https://api.m66.net/service1
https://api.m66.net/service2
https://api.m66.net/service3
Curl_Share_init () Resolary Sharing ကိုအကောင်အထည်ဖော်ရန် Curl_share_init () ကို အသုံးပြု. PHP SPENT SPORE သည်ဤတွင်ဖြစ်သည်။
<?php
// အဆိုပါ shared လက်ကိုင်ကိုအစပျိုး
$sh = curl_share_init();
curl_share_setopt($sh, CURLSHOPT_SHARE, CURL_LOCK_DATA_DNS);
curl_share_setopt($sh, CURLSHOPT_SHARE, CURL_LOCK_DATA_SSL_SESSION);
// တောင်းဆိုရန် URL အခင်းအကျင်း
$urls = [
'https://api.m66.net/service1',
'https://api.m66.net/service2',
'https://api.m66.net/service3',
];
// ဖြစ်ပေါ်လာခြင်း curl_multi လက်ကိုင်
$mh = curl_multi_init();
$handles = [];
foreach ($urls as $url) {
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_SHARE, $sh); // မျှဝေထားသောအရင်းအမြစ်များကို set up
curl_multi_add_handle($mh, $ch);
$handles[] = $ch;
}
// တစ်ပြိုင်နက်တည်းတောင်းဆိုမှုများဖျော်ဖြေ
$running = null;
do {
curl_multi_exec($mh, $running);
curl_multi_select($mh);
} while ($running > 0);
// ရလဒ်များကိုရယူပါ
foreach ($handles as $ch) {
$response = curl_multi_getcontent($ch);
echo "Response: " . $response . "\n";
curl_multi_remove_handle($mh, $ch);
curl_close($ch);
}
// အရင်းအမြစ်များကိုသန့်ရှင်းရေး
curl_share_close($sh);
curl_multi_close($mh);
?>
curl_share_init ကို အသုံးပြုခြင်း၏အကျိုးကျေးဇူးများကိုအဓိကအားဖြင့်အောက်ပါရှုထောင့်များတွင်ထင်ဟပ်သည်။
DNS cache sharing : တောင်းဆိုမှုတစ်ခုစီအတွက်ထပ်ခါတလဲလဲဒိုမိန်းအမည်ဖြေရှင်းချက်ကိုရှောင်ကြဉ်ပါ။
SSL Session Reuse : SSL လက်ခုပ်တီး overhead ကိုလျှော့ချပါ။
တိုးတက်လာသောဆက်သွယ်မှုထိရောက်မှု - HTTP Keep - ရှင်သန်နေသည့်အခါ၎င်းသည် interface တောင်းဆိုမှုကိုထိရောက်မှုကိုများစွာတိုးတက်စေနိုင်သည်။
မြင့်မားသောတစ်ပြိုင်နက်တည်းပတ်ဝန်းကျင်တွင်သို့မဟုတ် application အခြေအနေများတွင် curl_share_init () ကိုဆင်ခြင်တုံတရားအသုံးပြုခြင်းသည်ဆင်ခြင်တုံတရား၏စွမ်းဆောင်ရည်နှင့်တုန့်ပြန်မှုမြန်နှုန်းကိုသိသိသာသာတိုးတက်စေနိုင်သည်။
အရင်းအမြစ်များအားလုံးသည်လုံခြုံရေးသို့မဟုတ်ပြည်နယ်ညစ်ညမ်းမှုဆိုင်ရာပြ issues နာများကိုဖြစ်ပေါ်စေနိုင်သောမျှဝေခြင်း, အထူးသဖြင့် cookies များကိုမျှဝေရန်သင့်တော်သည်။
မျှဝေထားသောအရင်းအမြစ်များကိုအသုံးပြုသောဆံပင်ကောက်ကောက်များအားလုံးကိုပိတ်ထားပြီးသည့်နောက်တွင်မျှဝေထားသောအရင်းအမြစ်ကိုပိတ်ထားရမည်။
PHP installation အားလုံးသည် curl shared support ကိုဖွင့်ထားနိုင်ပြီး curl_version မှတဆင့်ပံ့ပိုးမှုအခြေအနေကိုစစ်ဆေးနိုင်သည်။