နိဒါန်း
အမှန်တကယ်ဖွံ့ဖြိုးတိုးတက်မှုတွင် PHP စီမံကိန်းများတိုးပွားလာသည်နှင့်အမျှ developer များစွာသည်မတူညီသော module များ၌တူညီသောအမည်နှင့်တူညီသောအမည်များဖြင့်အတန်းများကို သတ်မှတ်. ပ conflicts ိပက်ခများပေါ်ပေါက်လာစေနိုင်သည်။ ဤပြ problem နာကိုဖြေရှင်းရန် PHP သည် version 5.3 တွင် Namespace ၏အယူအဆကိုမိတ်ဆက်ခဲ့သည်။ ၎င်းသည် Code ၏ထိန်းသိမ်းမှုနှင့်ဖတ်နိုင်မှုကိုတိုးတက်စေရန်အတွက်အတန်းများ, လုပ်ငန်းဆောင်တာများ,
namespace ဆိုတာဘာလဲ။
namespace ကို "ဖိုင်တွဲ၏ဖိုင်တွဲတစ်ခု" ဖိုင်တွဲတစ်ခုအဖြစ်နားလည်နိုင်သည်။ ၎င်းသည်ဆက်စပ်သောအတန်းများ, ဤနည်းအားဖြင့်တူညီသောအမည်နှင့်တူညီသောအမည်ရှိအတန်းများကို module များစွာဖြင့်သတ်မှတ်ထားလျှင်ပင်သူတို့သည်တစ် ဦး နှင့်တစ် ဦး 0 င်ရောက်စွက်ဖက်လိမ့်မည်မဟုတ်ပါ။ စီမံကိန်းဖွဲ့စည်းပုံစီမံခန့်ခွဲမှုတိုးတက်စေရန်အမည်စာရင်းတင်သွင်းခြင်းကိုမိတ်ဆက်ပေးခြင်းသည် PHP ကိုပြုလုပ်ခဲ့သည်။
Class Name ပ conflicts ိပက်ခများကိုရှောင်ရှားရန် namespace အသုံးပြုခြင်း၏အမှန်တကယ်ဥပမာ
`connection` ဟုခေါ်သောအတန်း (logger) နှင့် database operations (database operations) နှစ်ခုလုံးပါ 0 င်သည့် module နှစ်ခုပါဝင်သည်ဆိုသည့်စနစ်တစ်ခုကိုသင်တီထွင်နေသည်ဟုမြင်ယောင်ကြည့်ပါ။ namespace မရှိသည့်အခါဤသည်ပ conflict ိပက်ခဖြစ်ပေါ်စေသည်။ namespace မှတဆင့်တစ် ဦး ချင်းစီကတခြားနှင့်အတူဝင်ရောက်စွက်ဖက်ခြင်းမရှိဘဲစီမံကိန်းတွင်အတန်းနှစ်ခုလုံးကိုအတူတကွပေါင်းသင်းနိုင်ပါတယ်။
logger.php
namespace Logger;
class Connection {
// Logger Module Connection Class Code
}
Database.php
namespace Database;
class Connection {
// Database Module Connection Class Code
}
အဓိကအစီအစဉ်တွင်ကွဲပြားခြားနားသောအမည်များဖြင့်အတန်းများကိုမည်သို့ခေါ်ရမည်နည်း
အထက်တွင်ဖော်ပြထားသောကွဲပြားခြားနားသော namespace နှစ်ခုကို အသုံးပြု. `` paint`php`s `php`s မှာသူတို့ကို `` အသုံးပြုမှုသော့ချက်စာလုံးမှတဆင့်မိတ်ဆက်ပေးနိုင်ပြီးပ conflicts ိပက်ခများကိုရှောင်ရှားရန် alias ကိုသုံးနိုင်သည်။
Main.php
require_once('logger.php');
require_once('database.php');
use Logger\Connection as LoggerConnection;
use Database\Connection as DBConnection;
$logger = new LoggerConnection();
$database = new DBConnection();
ဤနည်းအားဖြင့်ကျွန်ုပ်တို့သည် connection class ကိုမည်သည့်အမည်မမျှသာသည့်ကွဲပြားခြားနားသောပ conflicts ိပက်ခများမရှိဘဲကွဲပြားခြားနားသော module နှစ်ခုအောက်ရှိအမည်နှင့်တူညီသောအမည်ဖြင့်တူညီသောအမည်ဖြင့်လွတ်လပ်စွာခေါ်ဆိုနိုင်သည်။
namespace ပိုမိုအသုံးပြုခြင်း
Class Name ပ conflicts ိပက်ခများကိုရှောင်ရှားခြင်းအပြင်အမည်စာရင်းများသည်အားသာချက်များရှိသည်။
- Group Code ကိုယုတ္တိဗေဒကိုကူညီပေးပြီးခြုံငုံဖွဲ့စည်းပုံ၏ရှင်းလင်းမှုကိုတိုးတက်စေသည်
- ကြီးမားသောစီမံကိန်းများအတွက်အတန်းများသို့မဟုတ်လုပ်ဆောင်ချက်များ၏အရင်းအမြစ်ကိုရှာဖွေရန်ရှင်းလင်းစွာပြုလုပ်ပါ
- မတူကွဲပြားသော module များကိုပ conflict ိပက်ခမပါဘဲတူညီသောအတန်းသို့မဟုတ် function name ကိုအသုံးပြုရန်ခွင့်ပြုပါ
ကောက်ချက်
PHP Namespace ၏နိဒါန်းနိဒါန်းသည် developer များကိုပိုမိုအားကောင်းသောကုဒ်အဖွဲ့အစည်းများစွမ်းဆောင်နိုင်စွမ်းရှိသော developer များကိုပေးသည်။ namespace ကိုဆင်ခြင်တုံတရားကိုအသုံးပြုရန်အတွက်ကျွန်ုပ်တို့သည်ဘုံအတန်းအမည်ရှိပ conflict ိပက်ခပြ problems နာများကိုရှောင်ရှားနိုင်ရုံသာမကကျွန်ုပ်တို့၏ code ၏ထိန်းသိမ်းနိုင်မှုနှင့်ပမာဏကိုလည်းတိုးတက်စေသည်။ Namespace တွင်ကျွမ်းကျင်သောကျွမ်းကျင်မှုတိုင်းနှင့်အဆင့်မြင့် PHP developer အတွက်မသင်မနေရသင်တန်းဖြစ်သည်။