Naming ပ conflicts ိပက်ခများသည် PHP စီမံကိန်းများဖွံ့ဖြိုးတိုးတက်ရေးအတွက်ဘုံပြ problem နာဖြစ်သည်။ Namespace သည် PHP 5.3 တွင်မိတ်ဆက်ပေးသောအရေးကြီးသောအင်္ဂါရပ်တစ်ခုအနေဖြင့်, developer များကို campe, functions နှင့် constants ကဲ့သို့သောပုံတူပတ္တမြားပြ problem နာကိုထိထိရောက်ရောက်ဖြေရှင်းနိုင်သည့် developer များကိုလည်းထောက်ပံ့ပေးသည်။
namespace သည် code ကိုအုပ်စုဖွဲ့ခြင်း၏ယုတ္တိနည်းလမ်းဖြစ်သည်။ ကွဲပြားခြားနားသော module များအတွက်၎င်းတို့၏သက်ဆိုင်ရာအမည်များကိုသတ်မှတ်ခြင်းအားဖြင့်အတန်းအစားအမည်များသို့မဟုတ် functions အမည်များပုံတူပွားခြင်းကြောင့်ပ conflicts ိပက်ခများကိုကာကွယ်နိုင်သည်။ ၎င်း၏အဓိကရည်ရွယ်ချက်မှာ code ၏ modularity ကိုတိုးတက်စေရန်နှင့်ကုဒ်ဖွဲ့စည်းပုံကိုကြီးမားသောစနစ်များတွင်ရှင်းလင်းရန်ဖြစ်သည်။
namespace keyword ကိုသုံးပါ။
namespace MyProject {
const CONNECT_OK = 1;
class Connection { /* ... */ }
function connect() { /* ... */ }
}
namespace AnotherProject {
const CONNECT_OK = 1;
class Connection { /* ... */ }
function connect() { /* ... */ }
}
ကွဲပြားခြားနားသော namespace ရှိ element များကို "Namespace ရှေ့ဆက် + + element name" နည်းလမ်းဖြင့်ဝင်ရောက်ကြည့်ရှုနိုင်သည်။
$a = MyProject\CONNECT_OK;
$b = AnotherProject\CONNECT_OK;
$conn1 = new MyProject\Connection();
$conn2 = new AnotherProject\Connection();
MyProject\connect();
AnotherProject\connect();
နာမည်တူတူအမည်ရှိသည့်အတန်းအစားသည်အမည်များကိုမျိုးစုံဖြင့်တည်ရှိသောအခါ, သင် အသုံးပြုမှုကိုသုံးနိုင်သည်။ ပ conflicts ိပက်ခများကိုရှောင်ရှားရန် alias ကိုဖန်တီးရန် ...
namespace MyProject;
use AnotherProject\Connection as AnotherConnection;
$conn1 = new Connection();
$conn2 = new AnotherConnection();
Namespace သည်အတန်း၏လမ်းကြောင်းအပြည့်အစုံကိုပြောင်းလဲခြင်းကြောင့်ရိုးရာအတန်းအစားအမည်, အမည်ဖိုင်အမည် "နည်းလမ်းကိုမရှိတော့ပါ။ ၎င်းသည်သုံးစွဲသူအား Class File ကိုအလိုအလျောက် 0 င်ရောက်ခြင်းယန္တရားနှင့်ပေါင်းစပ်ရန်လိုအပ်သည် (PSR-4) ။
အရာဝတ်ထုကို ဦး စားပေးဖွံ့ဖြိုးတိုးတက်မှုတွင် Namespaces သည်အတန်းများ, နည်းစနစ်များနှင့်ကိန်းဂဏန်းများကိုစီစဉ်ရန်ကူညီသည်။
namespace MyProject;
class MyClass { /* ... */ }
function myFunction() { /* ... */ }
const MY_CONST = 1;
$a = new MyClass;
$b = myFunction();
$c = new \MyProject\MyClass;
$d = \MyProject\myFunction();
$e = MY_CONST;
$f = \MyProject\MY_CONST;
PHP Namespace သည်အမည်များပ conflicts ိပက်ခများကိုထိထိရောက်ရောက်ဖြေရှင်းနိုင်ရုံသာမကကုဒ်အဖွဲ့အစည်းဖွဲ့စည်းပုံ၏ရှင်းလင်းမှုကိုတိုးတက်စေသည်။ အမှန်တကယ်ဖွံ့ဖြိုးတိုးတက်မှုတွင်အမည်စာရင်းတင်သွင်းမှုကိုဆင်ခြင်တုံတရားအသုံးပြုခြင်းသည်အရည်အသွေးမြင့်မားပြီးထိန်းသိမ်းထားသော PHP ကုဒ်ကိုရေးသားခြင်းတွင်အရေးကြီးသောအလေ့အကျင့်တစ်ခုဖြစ်သည်။