ခေတ်သစ်ဆော့ဖ်ဝဲဖွံ့ဖြိုးတိုးတက်မှုတွင် CI / CD (စဉ်ဆက်မပြတ်ပေါင်းစည်းခြင်းနှင့်စဉ်ဆက်မပြတ်ဖြန့်ဖြူးခြင်း) သည်ဖွံ့ဖြိုးမှုစွမ်းရည်ကိုတိုးတက်စေရန်အတွက်အဓိကနည်းပညာတစ်ခုဖြစ်သည်။ အလိုအလျောက်ဖြစ်စဉ်များမှတစ်ဆင့်ဖွံ့ဖြိုးရေးအဖွဲ့သည်ဖွံ့ဖြိုးရေးအဆင့်တွင်စောစောစီးစီးပြ problems နာများကိုရှာဖွေတွေ့ရှိနိုင်ပြီးဗားရှင်းအသစ်များကိုလျင်မြန်စွာထုတ်လွှတ်နိုင်သည်။ သို့သော်ကွဲပြားခြားနားသောဖြန့်ကျက်ပလက်ဖောင်းများတွင် system အမျိုးအစားများကိုအလိုအလျောက်ခွဲခြားသတ်မှတ်ပြီးခွဲခြားသတ်မှတ်ခြင်းသည်အထူးသဖြင့်မတူညီသော operating systems များနှင့်ပတ်ဝန်းကျင်အတွက်အဓိကပြ issue နာဖြစ်နေဆဲဖြစ်သည်။ ဤဆောင်းပါးသည် PHP code နှင့်ပေါင်းစပ်ပြီး CI / CD ဖြစ်စဉ်ကို cd လုပ်ငန်းစဉ်တွင်စနစ်အမျိုးအစားများကိုအလိုအလျောက်ဖြန့်ကျက်ပလက်ဖောင်းများကိုအလိုအလျောက်ခွဲခြားသတ်မှတ်ရန်နှင့်ခွဲခြားသတ်မှတ်ခြင်းကိုမိတ်ဆက်ပေးလိမ့်မည်။
CI / CD သည် Code အပြောင်းအလဲများကိုအလိုအလျောက်ပေါင်းစပ်ခြင်း, စမ်းသပ်မှုများနှင့်ဖြန့်ကျက်ထားသည့်ဖွံ့ဖြိုးတိုးတက်မှုနှင့်ဖြန့်ကျက်ထားသည့်ဖွံ့ဖြိုးရေးအလေ့အကျင့်တစ်ခုဖြစ်သည်။ CI (စဉ်ဆက်မပြတ်ပေါင်းစည်းမှု) တွင် developer code ကို code base, တည်ဆောက်ခြင်းနှင့်စမ်းသပ်ခြင်းသို့အလိုအလျောက်တင်သွင်းခြင်း, CD (စဉ်ဆက်မပြတ်ပေးပို့ခြင်း) သည် code ကိုထုတ်လုပ်မှုပတ် 0 န်းကျင်သို့အလိုအလျောက်ချထားနိုင်ပြီးဖြန့်ကျက်မှုဖြစ်စဉ်သည်ယုံကြည်စိတ်ချရပြီးထပ်ခါတလဲလဲပြုလုပ်နိုင်သည်။
အမှန်တကယ် CI / CD ဖြစ်စဉ်များတွင်ကွဲပြားခြားနားသောပလက်ဖောင်းများသို့နေရာချထားသည့်အခါပတ်ဝန်းကျင်ပြင်ဆင်မှုနှင့်ကုဒ်သည်စနစ်အမျိုးအစားများ (ဥပမာ, Linux, Windows, Windows, MacOs) တွင်ကွဲပြားခြားနားမှုများမကြာခဏကြုံတွေ့ရလေ့ရှိသည်။ ဤကွဲပြားခြားနားမှုများကိုအလိုအလျောက်ခွဲခြားရန်နှင့်သက်ဆိုင်ရာလိုက်လျောညီထွေဖြစ်အောင်လုပ်ခြင်းသည် CID System Optimization ၏အရေးကြီးသောရှုထောင့်ဖြစ်သည်။
PHP ကိုယ်တိုင်သည်လက်ရှိပတ်ဝန်းကျင်အမျိုးအစားကိုရှာဖွေရန်အသုံးပြုနိုင်သည့် built-in functions နှင့် contains များကိုထောက်ပံ့ပေးသည်။ ဤကိရိယာများနှင့်အတူ CI / CD လုပ်ငန်းစဉ်တွင်အလိုအလျောက်ဖော်ထုတ်ခြင်းကိုအလွယ်တကူရရှိနိုင်ပါသည်။
PHP သည် PHP_OS ကိန်းရှင်များအားလက်ရှိ PHP လည်ပတ်သောပတ် 0 န်းကျင်အမျိုးအစားကိုတိုက်ရိုက်ရယူနိုင်သည့် PHP_OS ကိန်းရှင်များကိုထောက်ပံ့ပေးသည်။ ဤတွင်၎င်းကိုမည်သို့အသုံးပြုရမည်ကိုဥပမာတစ်ခုဖြစ်သည်။
<?php
// operating system ကိုသတင်းအချက်အလက်ရယူပါ
$os = PHP_OS;
echo "လက်ရှိ operating system ဖြစ်ပါတယ်:".$os;
?>
php_os စဉ်ဆက်မပြတ်ပြန်လာသောတန်ဖိုးသည်ကွဲပြားခြားနားသော operating system များနှင့်အညီကွဲပြားလိမ့်မည်။
Linux : Linux စနစ်
Winnt : Windows System
Darwin : MacOS စနစ်
အကယ်. operating system version နံပါတ်, ဗိသုကာပုံစံများစသည်တို့ကဲ့သို့အသေးစိတ်အချက်အလက်များလိုအပ်ပါက php_uname () function မှတဆင့်သင်ရရှိနိုင်သည်။ ၎င်းသည် operating system အကြောင်းပိုမိုသိရှိလိုသည်။
<?php
// operating system အကြောင်းအသေးစိတ်အချက်အလက်များကိုရယူပါ
$uname = php_uname();
echo "operating system အသေးစိတ်အချက်အလက်များ:".$uname;
?>
၎င်းသည်အောက်ပါကဲ့သို့သောအရာတစ်ခုကိုပြန်ပေးလိမ့်မည်။
Linux 4.15.0-50-Generic # 54-Ubuntu SMP Fri Jul 13 17:32:05 UTC 2018 X86_64 (Linux)
Windows NT Win10 10.0 Build 18362 (Windows)
Darwin MacBook-pro.local 18.7.0 Darwin kernel version 18.7.0 (MACOS)
operating system အချက်အလက်ကိုရယူပြီးသည်နှင့်ကျွန်ုပ်တို့သည် System အမျိုးအစားများအရ CI / CD လုပ်ငန်းစဉ်တွင်လိုက်လျောညီထွေဖြစ်အောင်ပြုလုပ်နိုင်သည်။ ဥပမာအားဖြင့်, Linux တွင်နေရာချထားပါကအချို့သောမှီခိုမှုများတပ်ဆင်ထားပြီး Windows တွင်မတူညီသောလမ်းကြောင်းများသို့မဟုတ် command များကိုသုံးရန်လိုအပ်နိုင်သည်။
<?php
$os = PHP_OS;
if (strpos($os, 'WIN') !== false) {
echo "ဒါ Windows စံနစ်\n";
// Windows သတ်သတ်မှတ်မှတ်စစ်ဆင်ရေး
} elseif (strpos($os, 'Linux') !== false) {
echo "ဒါ Linux စံနစ်\n";
// Linux သတ်သတ်မှတ်မှတ်စစ်ဆင်ရေး
} elseif (strpos($os, 'Darwin') !== false) {
echo "ဒါ macOS စံနစ်\n";
// macOS သတ်သတ်မှတ်မှတ်စစ်ဆင်ရေး
} else {
echo "无法识别的操作စံနစ်\n";
}
?>
System အမျိုးအစားကိုအလိုအလျောက်ခွဲခြားသိမြင်ပြီးနောက်အမှန်တကယ် CI / CD ဖြစ်စဉ်တွင်၎င်းကိုဖြန့်ကျက်ခြင်းလုပ်ငန်းစဉ်၏မှန်ကန်မှုကိုသေချာစေရန်, ဥပမာအားဖြင့်, စနစ်က၎င်းသည် Windows ပလက်ဖောင်းတစ်ခုဖြစ်ကြောင်းအသိအမှတ်ပြုသည့်အခါ တေးရေးဆရာကို အလိုအလျောက်ထည့်သွင်းပြီးမှီခိုမှုစီမံခန့်ခွဲမှုများကိုအလိုအလျောက်တပ်ဆင်နိုင်သည်။ Linux တွင်မှီခိုမှုများကို install လုပ်ရန် apt ကို အသုံးပြုနိုင်သည်။
CI / CD လုပ်ငန်းစဉ်အတွက် Gitlab CI ကိုသုံးပါဆိုပါစို့။ ဤနေရာတွင် operating system အမျိုးအစားပေါ် မူတည်. ကွဲပြားခြားနားသောဖြန့်ကျက်သော scripts များကိုလုပ်ဆောင်နေသည့် .gitlab-ci.yml configurations ၏ရိုးရှင်းသောဥပမာဖြစ်သည်။
stages:
- deploy
deploy:
script:
- |
if [[ "$CI_RUNNER_OS" == "linux" ]]; then
echo "ချထားချထား Linux စံနစ်"
./deploy-linux.sh
elif [[ "$CI_RUNNER_OS" == "windows" ]]; then
echo "ချထားချထား Windows စံနစ်"
./deploy-windows.bat
else
echo "无法识别的操作စံနစ်"
fi
PHP ပရောဂျက်များ၌ URL သည်ဘုံ configuration item ဖြစ်သည်။ URL ၏ domain name ကို deployment process တွင်ကွဲပြားခြားနားသောပတ်ဝန်းကျင်တွင်ညှိနှိုင်းရန်လိုအပ်ပါကထုတ်လုပ်မှုပတ်ဝန်းကျင်ရှိဒေသန္တရဒိုမိန်းအမည်များရှိဒေသခံဒိုမိန်းအမည်များရှိဒေသဆိုင်ရာဒိုမိန်းအမည်များအသုံးပြုပါ။ ၎င်းကိုကိုင်တွယ်ရန်အောက်ပါကုဒ်ကိုသုံးနိုင်သည်။
<?php
// မူရင်းဖြစ်သော URL
$url = "http://example.com/api/v1/data";
// အဖြစ်ဒိုမိန်းအမည်ကိုအစားထိုးလိုက်ပါ m66.net
$modified_url = preg_replace('/https?:\/\/[^\/]+/', 'http://m66.net', $url);
echo "ပြုပြင်ထားသော URL ဟုတ်ကဲ့:".$modified_url;
?>
ဤကုဒ်သည်မူလ URL တွင် Domain Name ရှိ Domain Name ကိုမခွဲခြားဘဲ M66.net နှင့်အတူမူလ URL တွင် domain name ကိုအစားထိုးသည်။
မတူညီသောစနစ်အမျိုးအစားများကို CI / CD ဖြစ်စဉ်များပေါင်းစပ်ခြင်းနှင့်ခွဲခြားခြင်းတို့ကိုအလိုအလျောက်ခွဲခြားသတ်မှတ်ခြင်းနှင့်ခွဲခြားထားခြင်းကဖြန့်ကျက်မှုလုပ်ငန်းစဉ်ကိုပိုမိုထိရောက်စေရုံသာမကပလက်ဖောင်းကွဲပြားမှုကြောင့်ဖြစ်ပေါ်လာသောအမှားများကိုလည်းလျှော့ချနိုင်သည်။ PHP မှပေးသော system information information function function မှတဆင့်ကျွန်ုပ်တို့သည်မတူညီသော operating system များတွင်ကွဲပြားခြားနားသောနေရာချထားမှုအဆင့်များကိုလုပ်ဆောင်နိုင်သည်။ URL အစားထိုးခြင်းအားဖြင့်ကျွန်ုပ်တို့သည်မှန်ကန်သော domain name ကိုမတူညီသောပတ်ဝန်းကျင်တွင်အသုံးပြုသည်။ ဤချဉ်းကပ်မှုများကိုအသုံးပြုခြင်းအားဖြင့်ကျွန်ုပ်တို့၏ CI / CD ဖြစ်စဉ်များ၏ပြောင်းလွယ်ပြင်လွယ်မှုနှင့်ယုံကြည်စိတ်ချရမှုများကိုတိုးမြှင့်နိုင်ပြီးပလက်ဖောင်းများစွာကိုစဉ်ဆက်မပြတ်ပေါင်းစည်းခြင်းနှင့်ပေးပို့ခြင်းတို့ကိုပြုလုပ်နိုင်သည်။