လက်ရှိတည်နေရာ: ပင်မစာမျက်နှာ> နောက်ဆုံးရဆောင်းပါးများစာရင်း> အသုံးမပြုသောစဉ်ဆက်မပြတ်လည်ပတ်နိုင်ပုံ

အသုံးမပြုသောစဉ်ဆက်မပြတ်လည်ပတ်နိုင်ပုံ

M66 2025-05-31

PHP Project Development တွင်အမြဲတမ်း သတ်မှတ်ခြင်း သို့မဟုတ်သီးခြား သတ်မှတ်ခြင်း ကိုသတ်မှတ်လေ့ရှိသည်။ စီမံကိန်းဆက်လက်မြင့်တက်လာသည်နှင့်အမျှကိန်းဂဏန်းအရေအတွက်သည်သိသိသာသာတိုးများလာလိမ့်မည်။ အချိန်ကြာလာသည်နှင့်အမျှအချို့သောကိန်းဂဏန်းများကိုမေ့သွားနိုင်ပြီးမည်သည့်ကုဒ်မှမဆိုကိုးကားခြင်းမရှိတော့ပါ။ ဤအသုံးမပြုရသေးသောနေအိမ်များသည်ပြုပြင်ထိန်းသိမ်းမှုကုန်ကျစရိတ်များကိုတိုးမြှင့်ပေးပြီး Code Readability နှင့်ထိန်းသိမ်းမှုကိုလျှော့ချသည်။ Code အရည်အသွေးတိုးတက်စေရန်အတွက်အသုံးမပြုရသေးသောစဉ်ဆက်မပြတ်ခွဲခြားသတ်မှတ်ရန်နှင့်သန့်ရှင်းရေးလုပ်ရန် static ခွဲခြမ်းစိတ်ဖြာခြင်းနည်းလမ်းများနှင့်ပေါင်းစပ်ထားသော Get_Defined_Concants function ကိုသုံးနိုင်သည်။

Get_Defined_constants ကဘာလဲ။

Get_Defined_constants သည် PHP ၏ built-in function များထဲမှတစ်ခုဖြစ်သည်။ ၎င်းသည်သုံးစွဲသူသတ်မှတ်ထားသောကိန်းနှင့် PHP internal constants အပါအ 0 င်) တွင်သတ်မှတ်ထားသောကိန်းဂဏန်းများကိုပြန်လည်ပေးပို့ရန်အသုံးပြုသော PHP ၏လုပ်ဆောင်ချက်တစ်ခုဖြစ်သည်။ ဤလုပ်ဆောင်ချက်သည် boolean parameter ကိုလက်ခံနိုင်ပြီး parameter သည် မှန်သော အခါ၎င်းသည် Multidimensional Array ကိုခွဲခြားထားသည်။ ဒီလိုမှမဟုတ်ရင်ဒါကပြားချပ်ချပ်ခင်းကျင်းကိုပြန်ပို့တယ်။

ဥပမာ -

 print_r(get_defined_constants(true));

အသုံးမပြုတဲ့ကိန်းစုကိုစစ်ထုတ်ခြင်းနိယာမ

Get_Defined_concants သည် စဉ်ဆက်မပြတ်အသုံးပြုသည်ကိုတိုက်ရိုက်မပြောပါ။ သို့သော်ဤရည်မှန်းချက်ကိုသွယ်ဝိုက်ရန်အောက်ပါအဆင့်နှစ်ခုကိုကျွန်ုပ်တို့ပေါင်းစပ်နိုင်သည်။

  1. အသုံးပြုသူသတ်မှတ်ထားသောစဉ်ဆက်မပြတ်အမည်များအားလုံးကိုရရှိသည်။

  2. စီမံကိန်းကုဒ်မှတဆင့်ကြားဖြတ်နှင့်ဤကိန်းဂဏန်းများကိုကိုးကားမထားရှိမရှိစစ်ဆေးပါ။

  3. အမှတ်အသားမရှိသောကိန်းရှင်များကို "အသုံးမပြု" ဟုအမှတ်အသားပြုသည်။

နမူနာအကောင်အထည်ဖော်မှု

ဤတွင်သင်သည်အသေးစားနှင့်အလတ်စားစီမံကိန်းကိုထိန်းသိမ်းထားသည်ဟုယူဆသောရိုးရှင်းသောအကောင်အထည်ဖော်မှုအကြံဥာဏ်တစ်ခုဖြစ်သည်။

အဆင့် 1: သုံးစွဲသူသတ်မှတ်ထားသောကိန်းစုအားလုံးကိုစုဆောင်းပါ

 $allConstants = get_defined_constants(true);

$userConstants = isset($allConstants['user']) ? $allConstants['user'] : [];

အဆင့် 2 - စီမံကိန်းလမ်းညွှန်ကို ဖြတ်. စဉ်ဆက်မပြတ်ကိုးကားချက်များကိုရှာဖွေပါ

 $projectDir = __DIR__ . '/src'; // စီမံကိန်းအရင်းအမြစ်ကုဒ်လမ်းညွှန်
$usedConstants = [];

$files = new RecursiveIteratorIterator(new RecursiveDirectoryIterator($projectDir));
foreach ($files as $file) {
    if ($file->isFile() && pathinfo($file, PATHINFO_EXTENSION) === 'php') {
        $content = file_get_contents($file->getPathname());
        foreach ($userConstants as $name => $value) {
            // ရိုးရှင်းသော string ကိုရှာဖွေရေး,သင်ပုံမှန်ကိုက်ညီမှုတိကျမှန်ကန်မှုကိုသုံးနိုင်သည်
            if (strpos($content, $name) !== false) {
                $usedConstants[$name] = true;
            }
        }
    }
}

အဆင့် 3: အသုံးမပြုသောစဉ်ဆက်မပြတ်ကိန်းစု

 $unusedConstants = array_diff_key($userConstants, $usedConstants);

echo "အသုံးမပြုတဲ့ကိန်းသားစာရင်း:\n";
print_r(array_keys($unusedConstants));

အပိုဆောင်းအကြံပြုချက်များ

  • ကြီးမားသောစီမံကိန်းများအတွက်ပုံမှန်အသုံးအနှုန်းများကိုအသုံးပြုခြင်းကဲ့သို့သောအမည်များသည်အဆက်မပြတ်အမည်များနှင့်ဆင်တူသည့်အခါ 0 င်ရောက်စွက်ဖက်မှုကဲ့သို့သော 0 င်ရောက်စွက်ဖက်မှုကိုရှောင်ရှားရန်ပုံမှန်အသုံးအနှုန်းများကိုအသုံးပြုရန်အကြံပြုပါသည်။

  • အတည်ပြုချက်များစွာအတွက် PhpPSTAN ကဲ့သို့သော PHPSTAN, ဆာလံများကဲ့သို့သော Phpstan, ဆာလံကျမ်းများကဲ့သို့ဆာလံများ) နှင့်ပူးပေါင်းဆောင်ရွက်ရန်အကြံပြုသည်။

  • အမြဲတမ်းမဖယ်ရှားမီ, dynamically ရည်ညွှန်းနေကြသော constants မတော်တဆဖျက်ခြင်းမှရှောင်ရှားရန်ဖွံ့ဖြိုးရေးပတ်ဝန်းကျင်တွင်ထပ်ခါတလဲလဲစမ်းသပ်ဖို့အကြံပြုသည်။

လက်တွေ့ကျသော application အခြေအနေများ

သင်၏စီမံချက်သည်အောက်ပါအရေအတွက်ကိုသတ်မှတ်သည်ဆိုပါစို့။

 define('API_URL', 'https://m66.net/api/');
define('DEBUG_MODE', true);
define('UNUSED_CONST', 12345);

script ခွဲခြမ်းစိတ်ဖြာပြီးနောက်အသုံးမပြုရ သေးသော unconst သည်စီမံကိန်းတွင်မသုံးကြောင်းတွေ့ရှိရသည်။ ထို့ကြောင့်စီမံကိန်းကုဒ်၏သပ်ရပ်မှုကိုတိုးတက်စေရန်ကုဒ်နံပါတ်မှဖယ်ရှားရန်စဉ်းစားနိုင်သည်။

ကောက်ချက်

အသုံးမပြုရသေးသောကိန်းရှင်များကိုတိုက်ရိုက်ရှာဖွေရန် PHP တွင်တည်ဆောက်ထားသောလုပ်ဆောင်နိုင်စွမ်းမရှိသော်လည်း၎င်းကို Get_Defined_Constants function နှင့်ရိုးရှင်းသော code scanning logic မှတဆင့်အောင်မြင်နိုင်သည်။ Constiter ၏ဆင်ခြင်တုံတရားစီမံခန့်ခွဲမှုသည် Code Readability နှင့်ထိန်းသိမ်းနိုင်မှုကိုတိုးတက်စေရန်ကူညီသည်။