ဂဏန်း CURLOPT ရွေးချယ်စရာများ မပို့မီ CurlTransport ကို ရွေးပါ။ Yii2 ၏ HTTP client သည် မူရင်းအားဖြင့် StreamTransport ကို အသုံးပြုပြီး ထို constant များ ရှိနေခြင်းကြောင့်သာ cURL မဖြစ်ပါ:

$client = new \yii\httpclient\Client([
    'transport' => \yii\httpclient\CurlTransport::class,
]);

$response = $client->createRequest()
    ->setMethod('GET')
    ->setUrl('https://api.example/items')
    ->setOptions([
        CURLOPT_PROXY => 'http://proxy.example:8080',
        CURLOPT_PROXYAUTH => CURLAUTH_BASIC,
        CURLOPT_PROXYUSERNAME => $proxyUser,
        CURLOPT_PROXYPASSWORD => $proxyPassword,
        CURLOPT_CONNECTTIMEOUT => 5,
        CURLOPT_TIMEOUT => 15,
    ])
    ->send();

cURL extension ပါသော PHP runtime ကို အသုံးပြုပါ။ ဤဥပမာသည် Basic လက်ခံသော HTTP proxy ကို မျှော်လင့်သည်; proxy ကို transport ပံ့ပိုးသည့် နည်းလမ်းနှင့် ကိုက်ညီအောင် ချိန်ပါ။

CURLOPT_PROXYAUTH သည် ကြားခံအတည်ပြုမှုကို ရွေးသည်။ CURLOPT_HTTPAUTH နှင့် API အခွင့်အာဏာသည် အစား ဦးတည်ရာကို ဆောင်ရွက်သည်။

Yii2 ၏ မျှဝေထားသော တောင်းဆိုမှု ရွေးချယ်စရာများ၊ စာလုံးအကြီးအသေး ခွဲခြားသော proxy နှင့် အချိန်ကန့်သတ်ချက်များ အပါအဝင်၊ အခြား interface ဖြစ်သည်။ ၎င်းတို့သည် မထင်သလို cURL constant များကို backend များအကြား ရွှေ့ပြောင်းနိုင်အောင် မလုပ်ပါ။

Client.requestConfig သည် ဆက်လက်ရှိနေရမည့် မူရင်းတန်ဖိုးများကို ပေးပါက တောင်းဆိုမှုတစ်ခုစီအတွက် ထပ်တိုးရန် addOptions ကို အသုံးပြုပါ။ ပြသထားသော setOptions သည် ထို collection ကို အစားထိုးပြီး အမွေရရွေးချယ်မှုများကို ဖယ်ရှားနိုင်သည်။

ဆက်စပ်ဆောင်းပါးများ