မကြာသေးမီနှစ်များအတွင်း PHP သည်ကျယ်ကျယ်ပြန့်ပြန့်အသုံးပြုသောပရိုဂရမ်ဘာသာစကားတစ်ခုအနေဖြင့်အင်တာနက်ဖွံ့ဖြိုးတိုးတက်မှုနယ်ပယ်တွင်အရေးပါသောအနေအထားကိုသိမ်းပိုက်ခဲ့သည်။ PHP သည်၎င်း၏ပြောင်းလွယ်ပြင်လွယ်, ရိုးရှင်းမှုနှင့်ကြီးမားသောဖွံ့ဖြိုးရေးအသိုင်းအဝိုင်းအတွက်ကျယ်ကျယ်ပြန့်ပြန့်အသိအမှတ်ပြုခံခဲ့ရသည်။ သို့သော် PHP သည်စွမ်းဆောင်ရည်တွင်အချို့သောပိတ်ဆို့မှုများရှိသည်။
ဤဆောင်းပါးသည် Php7 နှင့် PHP8 အတွက် extension များအလွယ်တကူတိုးချဲ့ရန် C ++ Development ကိုမည်သို့လေ့လာရမည်ကိုမိတ်ဆက်ပေးလိမ့်မည်။ သဘာဝပတ်ဝန်းကျင်ထိန်းသိမ်းရေးမှ C ++ ၏အခြေခံဗဟုသုတများကိုကျွမ်းကျင်စေရန်အတွက်လက်တွေ့ကျကျအမှုများမှတစ်ဆင့် C ++ ချဲ့ထွင်မှုဖွံ့ဖြိုးတိုးတက်မှုနှင့်စတင်ရန်သင့်အားလျင်မြန်စွာစတင်လုပ်ဆောင်ရန်ကူညီလိမ့်မည်။
ဖွံ့ဖြိုးတိုးတက်မှုမစတင်မီသင်က C ++ ဖွံ့ဖြိုးရေးပတ် 0 န်းကျင်ကိုအရင်တည်ဆောက်ရန်လိုအပ်သည်။ 0 င်းဒိုးအသုံးပြုသူများအတွက်, Linux သို့မဟုတ် Mac အသုံးပြုသူများသည်ဖွံ့ဖြိုးတိုးတက်မှုအတွက် GCC / G ++ compiler ကိုအသုံးပြုရန်ရွေးချယ်နိုင်သည်။ တစ်ချိန်တည်းမှာပင် PHP Development Package ကို PHP Development Package ကိုချောချောမွေ့မွေ့ပြုလုပ်နိုင်ရန်အတွက်လည်းတပ်ဆင်ရန်လိုအပ်သည်။
C ++ ဆိုသည်မှာ C ဘာသာစကား၏ဝိသေသလက်ခဏာများစွာကိုအမွေပေးသောအရာဝတ်ထု ဦး တည်သည့်ပရိုဂရမ်ဘာသာစကားတစ်ခုဖြစ်ပြီးအတန်းများ, PHP extensions များကိုတီထွင်သည့်အခါ syntax, data အမျိုးအစားများ, လုပ်ငန်းစဉ်ထိန်းချုပ်ခြင်း, လုပ်ဆောင်ချက်များ, pointers များ,
ထို့အပြင် PHP နှင့် C ++ နှင့်မည်သို့ဆက်သွယ်ရမည်ကိုနားလည်ရန်အလွန်အရေးကြီးသည်။ PHP သည်ကျွန်ုပ်တို့အား PHP-code extension များသို့ C ++ ကုဒ်ကို PHP-concription extension များနှင့် php code များနှင့်အပြန်အလှန်ဆက်သွယ်ခွင့်ပြုသည့် APIs အမျိုးမျိုးကိုထောက်ပံ့ပေးသည်။ ဥပမာအားဖြင့်, PHP တွင် PHP မှ C ++ လုပ်ဆောင်ချက်များကို API မှတဆင့်ခေါ်ယူနိုင်သည်။
C ++ ကို PHP နှင့်မည်သို့ပေါင်းစပ်ရမည်ကိုပိုမိုနားလည်ရန်ရိုးရှင်းသော PHP extension ကိုပြသရန်ပုံဥပမာတစ်ခုအနေဖြင့် Fibonacci ပာများကိုဥပမာအဖြစ်တွက်ချက်ကြပါစို့။
#include <php.h>
class Fibonacci {
public:
int calculate(int n) {
if (n <= 1) {
return n;
} else {
return calculate(n - 1) + calculate(n - 2);
}
}
};
ZEND_METHOD(fibonacci, calculate) {
long n;
if (zend_parse_parameters(ZEND_NUM_ARGS(), "l", &n) == FAILURE) {
RETURN_NULL();
}
Fibonacci fib;
int result = fib.calculate(n);
RETURN_LONG(result);
}
zend_function_entry fibonacci_methods[] = {
ZEND_ME(fibonacci, calculate, NULL, ZEND_ACC_PUBLIC),
{NULL, NULL, NULL}
};
zend_module_entry fibonacci_module_entry = {
STANDARD_MODULE_HEADER,
"fibonacci",
fibonacci_methods,
NULL,
NULL,
NULL,
NULL,
NULL,
"0.1",
STANDARD_MODULE_PROPERTIES
};
#ifdef COMPILE_DL_FIBONACCI
ZEND_GET_MODULE(fibonacci)
#endif
အထက်ဖော်ပြပါကုဒ်သည် Fibonacci sequence ကိုတွက်ချက်ရန်တွက်ချက်သည့်နည်းစနစ်ကိုတွက်ချက်ရန်တွက်ချက်နည်းသည့်အတန်းအစားကိုသတ်မှတ်ထားသည်။ ထို့နောက် PHP extension နည်းလမ်းကို Zend_Method Macro ကို အသုံးပြု. Zend_Method Macro ကို အသုံးပြု. သတ်မှတ်သည်။ C ++ အတန်းအစားကိုတွက်ချက်သည်။ နောက်ဆုံးအနေဖြင့် extension module နှင့်သက်ဆိုင်သောသက်ဆိုင်ရာအချက်အလက်များကိုသတ်မှတ်သည်။
C ++ ကုဒ်ကိုရေးပြီးနောက်တွင်အောက်ပါ command ဖြင့် extension ကို compile လုပ်ပြီးတပ်ဆင်နိုင်သည်။
phpize
./configure --with-php-config=<path_to_php-config>
make
sudo make install
စုစည်းပြီးပြီးပြည့်စုံပြီးနောက် fibonacci.o ဖိုင်ကိုထုတ်လုပ်လိမ့်မည်။ ၎င်းကို PHP ၏ extension directory သို့ကူးယူပါနှင့် PHP.ini ဖိုင်တွင်အောက်ပါ configuration ကိုထည့်ပါ။
extension=fibonacci.so
ထို့နောက် PHP 0 န်ဆောင်မှုကိုပြန်လည်စတင်ပါ။ ၎င်းကိုသင်၏ PHP Code တွင်ဤကဲ့သို့သောခေါ်ဆိုနိုင်သည်။
<?php
$ext = new Fibonacci();
echo $ext->calculate(10);
?>
ဤသင်ခန်းစာမှတစ်ဆင့် PPP extension များကို C ++ ကိုမည်သို့ပြုလုပ်ရမည်ကိုသင်လေ့လာသင်ယူခဲ့သည်။ ဤဆောင်းပါးသည် 0 င်ရောက်နိုင်သည့်ဥပမာတစ်ခုမျှသာဖြစ်သော်လည်း PHP ကို အသုံးပြု. PHP ကို အသုံးပြု. PHP ၏စွမ်းဆောင်ရည်ကိုတိုးတက်အောင်လုပ်ခြင်းနှင့်နောက်ခံစစ်ဆင်ရေးများကိုဖြည့်စွက်ရန် PHP နှင့်မည်သို့ဆက်သွယ်ရမည်ကိုပြသသည်။ C ++ extension ဖွံ့ဖြိုးတိုးတက်မှုကိုလေ့လာခြင်းအားဖြင့်သင်၏စီမံကိန်းလိုအပ်ချက်များကိုဖြည့်ဆည်းရန်ထိရောက်သော PHP extension များကိုအလွယ်တကူဖွံ့ဖြိုးနိုင်သည်ဟုကျွန်ုပ်မျှော်လင့်ပါသည်။
C ++ Development ကိုလေ့လာပြီးပါ PHP နှင့်အပြန်အလှန်ဆက်သွယ်မှုကိုကျွမ်းကျင်ပြီးလုပ်ခြင်းသည်စွမ်းဆောင်ရည်ကိုတိုးတက်အောင်သာမကပိုမိုရှုပ်ထွေးသောစစ်ဆင်ရေးများပိုမိုများပြားလာသည်။ ဤဆောင်းပါးသည်သင်အတွက်အထောက်အကူဖြစ်လိမ့်မည်ဟုကျွန်ုပ်မျှော်လင့်ပါသည်။