PHP ကွန်ယက်တောင်းဆိုမှုများတွင်ဆံပင်ကောက်ကောက်သည်အသုံးအများဆုံး tools များထဲမှတစ်ခုဖြစ်သည်။ အထူးသဖြင့်တစ်ပြိုင်နက်တည်း http တောင်းဆိုမှုများကိုကိုင်တွယ်သည့်အခါ curl-related functions ၏ဆင်ခြင်တုံတရားသည်စနစ်၏တည်ငြိမ်အေးချမ်းရေးနှင့်အရင်းအမြစ်အသုံးချခြင်းနှင့်တိုက်ရိုက်ဆက်စပ်မှုရှိသည်။ ဤဆောင်းပါးသည် curl_close () function ကိုအဓိကအားဖြင့်မြင့်မားသောတစ်ပြိုင်နက်တည်းအသုံးပြုမှုကိုဆွေးနွေးရန်နှင့်မမှန်ကန်သောအသုံးပြုမှုကြောင့်အရင်းအမြစ်စွန့်ပစ်ပစ္စည်းပြ problems နာများကိုဆွေးနွေးရန်အဓိကအားဖြင့်အာရုံစိုက်ပါလိမ့်မည်။
ကောက်ကောက်သည် PHP မှပေးသောအားကြီးသောကွန်ယက်တောင်းဆိုမှုစာကြည့်တိုက်သည် HTTP / HTTPS တောင်းဆိုမှုများကိုစတင်ရန်အသုံးပြုနိုင်သည်။ အသုံးပြုမှုလုပ်ငန်းစဉ်သည်အကြမ်းအားဖြင့်အောက်ပါအတိုင်းဖြစ်သည် -
Initialization: curl_init ()
parameters တွေကို set: curl_setopt ()
တောင်းဆိုမှုကို: curl_exec ()
အရင်းအမြစ်ကိုပိတ်ပါ။ curl_close ()
များသောအားဖြင့် developer များကအရင်းအမြစ်များကိုလွှတ်ပေးရန်တောင်းဆိုမှုတစ်ခုချင်းစီပြီးနောက် curl_close () ကိုခေါ်လိမ့်မည်။ ဤအလေ့အကျင့်သည်နည်းသောတစ်ပြိုင်နက်တည်းသို့မဟုတ်တိုတောင်းသောတစ်သက်တာစာတန်းများတွင်ကြီးမားသောသဘောတူညီမှုတစ်ခုမဟုတ်ပါ။
PPP သည်ဆံပင်ကောက်ကောက်ကို အသုံးပြု. curl_share သို့မဟုတ် curlopt_forbid_rebid_reuse ကဲ့သို့သော parameters များကိုအသုံးပြုသောအခါ, ချိတ်ဆက်မှုခတိုးမြို့သစ်သည် TCP connection တည်ဆောက်ခြင်းနှင့် tls handshake ကဲ့သို့သော overhead ကိုသိသိသာသာလျှော့ချနိုင်သည်။
ဒါပေမယ့်ပြ problem နာက curl_close () ကို curlose () ကိုခေါ်တဲ့အချိန်တိုင်း, လက်ရှိလက်ကိုင်နဲ့သက်ဆိုင်တဲ့ဆက်သွယ်မှုအချက်အလက်တွေပျက်စီးသွားမှာပါ။ နောက်ခံဆက်သွယ်မှုသည်ပြန်လည်အသုံးပြုခြင်းတန်ဖိုးကိုမကုန်ဆုံးလျှင်ပင်၎င်းကိုအဆက်ပြတ်ခြင်းကို ဆက်. အဆက်ဖြတ်ခြင်းခံရမည်။
function fetchData($url) {
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$response = curl_exec($ch);
curl_close($ch); // အချိန်တိုင်းဆက်သွယ်မှုကိုဖျက်ဆီးပါ
return $response;
}
$data = fetchData("https://gitbox.net/api/data");
တစ်ပြိုင်နက်တည်းတစ်ပြိုင်နက်တည်းဆိုတဲ့ပုံစံမှာဒီပုံစံဟာတစ်ချိန်လုံး connection အသစ်တစ်ခုကိုတည်ဆောက်ပြီးဆာဗာဘက်မှာအကြီးအကျယ်ဖိအားပေးမှုနဲ့ဒေသဆိုင်ရာအရင်းအမြစ်စားသုံးမှုတိုးပွားလာလိမ့်မယ်။
အသုတ်တောင်းဆိုမှုများတွင်သင်ဆံပင်ကောက်ကောက်ကိုပြန်လည်သုံးသပ်ပြီး URL ကိုသာ update လုပ်ပြီး parameters များကိုသာမွမ်းမံနိုင်သည်။
$ch = curl_init();
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$urls = [
"https://gitbox.net/api/user",
"https://gitbox.net/api/data",
"https://gitbox.net/api/config"
];
foreach ($urls as $url) {
curl_setopt($ch, CURLOPT_URL, $url);
$response = curl_exec($ch);
// ကိုင်တွယ်ဖြေရှင်းသည် $response
}
curl_close($ch); // နောက်ဆုံးအနေနဲ့ unified ပိတ်သိမ်း
ဤချဉ်းကပ်မှုသည်ဆက်သွယ်မှုကိုပိတ်ခြင်းနှင့်ပိတ်ခြင်းကြိမ်နှုန်းကိုသိသိသာသာလျော့နည်းစေသည်။ တူညီသောဘဝသံသရာတွင်အလားတူတောင်းဆိုမှုများအတွက်သင့်လျော်သည်။
လက်ကိုင်မျိုးစုံကိုစီမံခန့်ခွဲရန် curl_multi_init () ကို သုံးရန်အကြံပြုသည်။
$multi = curl_multi_init();
$chs = [];
$urls = [
"https://gitbox.net/api/user",
"https://gitbox.net/api/data",
"https://gitbox.net/api/config"
];
foreach ($urls as $i => $url) {
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_multi_add_handle($multi, $ch);
$chs[$i] = $ch;
}
$running = null;
do {
curl_multi_exec($multi, $running);
curl_multi_select($multi);
} while ($running > 0);
foreach ($chs as $ch) {
$content = curl_multi_getcontent($ch);
// ကိုင်တွယ်ဖြေရှင်းသည် $content
curl_multi_remove_handle($multi, $ch);
curl_close($ch);
}
curl_multi_close($multi);
ဤနည်းလမ်းသည် connection pool ၏မြှောက်မြှောက်မှုစွမ်းရည်ကိုအပြည့်အဝအသုံးချပြီးတစ်ပြိုင်နက်တည်း fearturrent interface တောင်းဆိုမှုအခြေအနေများတွင်အလွန်လက်တွေ့ကျသည်။
HTTP Keep - Live Protocol ကိုအသုံးပြုရန်သေချာအောင်လုပ်ပါ။
မကြာခဏတောင်းဆိုထားသောဒိုမိန်းအမည်များအရ DNS Cache သို့မဟုတ် IP တိုက်ရိုက်ဆက်သွယ်မှုကိုထည့်သွင်းစဉ်းစားသင့်သည်။
သေလွန်သောသူတို့သည်အဆက်မပြတ်ဆက်သွယ်မှုကိုရှောင်ရှားရန် curlopt_ သက်ဆိုင်ရာကိုသုံးပါ။
PHP-FPM ပတ်ဝန်းကျင်တွင်တောင်းဆိုမှုတစ်ခုအတွက် curl configurations အားလုံးကိုပြန်လည်တည်ဆောက်ခြင်းကိုရှောင်ရှားခြင်း,
မြင့်မားသောတစ်ပြိုင်နက် PHP applications များတွင် curl_close () သည် "ပိတ်ထားသော" ကိရိယာတစ်ခုမဟုတ်ပါ။ ၎င်း၏အခြေခံအပြုအမူနှင့်ဆက်သွယ်မှုပြန်လည်အသုံးပြုမှုယန္တရားကိုနားလည်ခြင်းသည် developer များပိုမိုထိရောက်သောတည်ငြိမ်သောကွန်ယက်ဆက်သွယ်ရေးယုတ္တိဗေဒကိုရေးရန်ကူညီလိမ့်မည်။ Multiplexing လက်ကိုင်များဖြင့်သို့မဟုတ် curl_multi ကို သုံး. သင်အရင်းအမြစ်များကိုသိမ်းဆည်းရုံသာမကတောင်းဆိုမှုစွမ်းဆောင်ရည်ကိုသိသိသာသာတိုးတက်စေနိုင်သည်။
ဆင်ခြင်တိုးန်းခြင်းကဆက်သွယ်မှုဘဝသံသရာသည်စနစ်တကျတိုးတက်စေရန်အတွက်သော့ချက်ကျသောခြေလှမ်းဖြစ်သည်။ ဤဆောင်းပါးသည်အမှန်တကယ်စီမံကိန်းများတွင်ပိုမိုကောင်းမွန်စေရန်သင့်အားလှုံ့ဆော်ပေးလိမ့်မည်ဟုကျွန်ုပ်မျှော်လင့်ပါသည်။