PHP ဖွံ့ဖြိုးတိုးတက်မှုတွင်အများအားဖြင့်အသုံးအများဆုံး extensions အချို့သည်ဒေတာဘေ့စ်ဆက်သွယ်မှု, PHP ရှိ Init functions များမှတဆင့်အသုံးအများဆုံး extensions များကိုမည်သို့စတင်မည်ကိုဤဆောင်းပါးကမိတ်ဆက်ပေးလိမ့်မည်။
PHP တွင် PHP configuration file ( php.ini ) တွင် extension များကိုများသောအားဖြင့် configure လုပ်ထားသော်လည်းအချို့သောကိစ္စများတွင်ကျွန်ုပ်တို့သည် code မှတစ်ဆင့် extension ကို load လုပ်ရန်လိုအပ်နိုင်သည်။ Extension တစ်ခုတင်ဆောင်ခြင်းရှိမရှိစစ်ဆေးရန် PHP ၏ extension_loaded function ကိုသင်အသုံးပြုနိုင်သည်။ အကယ်. ၎င်းကိုမဖွင့်ပါက၎င်းကို DL function မှတဆင့် dynamurce လုပ်နိုင်သည်။
function init() {
// လေ့ကျင့်နှင့်အသုံးပြုလေ့ check နှင့် load PHP တိုးချဲ့
if (!extension_loaded('mysqli')) {
dl('mysqli.so');
}
if (!extension_loaded('curl')) {
dl('curl.so');
}
if (!extension_loaded('gd')) {
dl('gd.so');
}
// 其他တိုးချဲ့的加载逻辑...
}
အချို့သောပတ်ဝန်းကျင်များတွင်ကျွန်ုပ်တို့သည် code များရှိ extensions များကိုအချိန်တိုင်းတွင် 0 င်ခွင့်မလိုအပ်ပါ ။ ၎င်းသည်ကုဒ်နံပါတ်များကို code ထဲ၌ထည့်ပြီးလျှောက်လွှာစတင်သောအခါလိုအပ်သော extensions များကိုအလိုအလျောက်ဖွင့်သည်။
PHPP.ini တွင်အောက်ပါနည်းလမ်းများကိုအောက်ပါနည်းလမ်းများဖြင့်သင်သတ်မှတ်နိုင်သည်။
extension=mysqli
extension=curl
extension=gd
အကယ်. သင်၏ PHP ပတ် 0 န်းကျင်သည်တက်ကြွသောတိုးချဲ့မှုကိုထောက်ပံ့သည်ဆိုပါက PHP.ini ၏ extension_dir မှတစ်ဆင့်တည်ရှိရာလမ်းညွှန်ကိုသင်သတ်မှတ်နိုင်သည်။
တခါတရံတွင် extension ကိုတင်ခြင်းအပြင် Database connections များ, image producting definition definition definition definition definition definition definition definition definition default settings စသည်တို့နှင့်စသည်တို့ကို Init function တွင် confircization configurations အချို့ကို လုပ်ဆောင်ရန်လိုအပ်သည်။
function init() {
// စစ်ဆေးပြီးတင်ပါ mysqli တိုးချဲ့
if (!extension_loaded('mysqli')) {
dl('mysqli.so');
}
// ဒေတာဘေ့စ်ဆက်သွယ်မှုကို configure
$mysqli = new mysqli("localhost", "user", "password", "database");
// စစ်ဆေးပြီးတင်ပါ curl တိုးချဲ့
if (!extension_loaded('curl')) {
dl('curl.so');
}
// ကွက်ကွက်ကေျာင်း Curl
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "http://gitbox.net/api/data");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
$output = curl_exec($ch);
// စစ်ဆေးပြီးတင်ပါ GD တိုးချဲ့
if (!extension_loaded('gd')) {
dl('gd.so');
}
// ကွက်ကွက်ကေျာင်း图片处理
$image = imagecreate(100, 100);
$background_color = imagecolorallocate($image, 255, 255, 255);
imagepng($image, '/tmp/sample.png');
}
ဤဥပမာတွင်ကျွန်ုပ်တို့သည် extension ကိုတင်ရုံသာမက PHP function မှတဆင့်ဒေတာဘေ့စ် connection နှင့် curl တောင်းဆိုမှုများကိုလည်းအစပျိုးပေးသည်။ သတိပြုရမည်မှာဤလုပ်ငန်းများကို Init function တွင်လုပ်ဆောင်နိုင်ပြီးဤလုပ်ဆောင်မှုများကိုလျှောက်လွှာသက်တမ်းတစ်လျှောက်လုံးတွင်တိုက်ရိုက်အသုံးပြုနိုင်သည်။
Extensions များကိုကိုယ်တိုင်တင်ခြင်းအပြင် PHP စီမံကိန်းများအတွက်မှီခိုမှုကိုစီမံရန်တေးရေးဆရာကိုလည်းသုံးနိုင်သည်။ Composer သည် PHP extensions များပေါ်တွင်မူတည်သည့်စာကြည့်တိုက်များကိုသတ်မှတ်ရန် ext- prefix ကိုပေးသည်။ ဥပမာအားဖြင့်, သင် curl extensions နှင့်သက်ဆိုင်သောစာကြည့်တိုက်များတပ်ဆင်ရန်လိုအပ်ပါကအောက်ပါ command ကိုသုံးနိုင်သည်။
composer require ext-curl
၎င်းသည်စာကြည့်တိုက်ကိုတပ်ဆင်သောအခါ curl extension ကိုစနစ်တကျတပ်ဆင်ပြီးဖွင့်ထားသည်။
extension များမတင်ပါနှင့် ။ PHP.ini configuration file ကိုမှန်ကန်စွာမသတ်မှတ်ထားပါက, စနစ်တွင်တိုးချဲ့မှုရှိမရှိအတည်ပြုရန် Phpinfo () ၏ရလဒ်ကိုစစ်ဆေးပါ။
တိုးချဲ့ပ conflict ိပက်ခ - တစ်ခါတစ်ရံတွင် GD နှင့် Imagemick extensions ကဲ့သို့သော extensions မျိုးစုံပ conflicts ိပက်ခများပြုလုပ်နိုင်သည်။ ပ conflict ိပက်ခများပြ issues နာများကိုသက်ဆိုင်ရာ parameters တွေကိုချဲ့ထွင်ခြင်းသို့မဟုတ်ပြင်ဆင်ခြင်းအားဖြင့်ဖြေရှင်းနိုင်သည်။
PHP တွင်အသုံးများသော extension များကိုအစပိုင်းတွင်စတင်ရန်အလွန်အရေးကြီးပြီးလျှောက်လွှာစတင်သောအခါလိုအပ်သောပတ်ဝန်းကျင်ကိုပြုပြင်ရန်ကျွန်ုပ်တို့အားကူညီနိုင်သည်။ developer များက 4 င်းတို့၏ applications များသည် extensions ကို php.ini မှတစ်ဆင့် extensions သို့မဟုတ် static configurations မှတစ်ဆင့် extensions များကိုပိုမိုကောင်းမွန်စွာဖွင့ ်. ချောချောမွေ့မွေ့လည်ပတ်နိုင်စေရန်သေချာစေနိုင်သည်။ ပိုမိုရှုပ်ထွေးသောမှီခိုမှုစီမံခန့်ခွဲမှုအတွက်တေးရေးဆရာသည် developer များတိုးချဲ့ခြင်းနှင့်၎င်းတို့၏မှီခိုမှုကိုအလွယ်တကူစီမံခန့်ခွဲရန်အထောက်အကူပြုသည်။