ကြီးမားသော PHP application များတည်ဆောက်သည့်အခါ Code အဖွဲ့အစည်း၏အားသာချက်များနှင့်အားနည်းချက်များသည်စီမံကိန်း၏ထိန်းသိမ်းနိုင်မှုနှင့်ဖွံ့ဖြိုးတိုးတက်မှုစွမ်းရည်ကိုတိုက်ရိုက်သက်ရောက်စေသည်။ PHP မှပေးသော get_include_path () နှင့် set_include_path () PHP မှပေးသောလက်တွေ့ကျသောလုပ်ဆောင်ချက်နှစ်ခုသည်လမ်းကြောင်းများအပါအ 0 င် (0 ါဖင့်အပါအ 0 င်) များထည့်သွင်းရန်အသုံးပြုသောလက်တွေ့လုပ်ဆောင်ချက်နှစ်ခုဖြစ်သည်။ သူတို့အတွက်အကူအညီဖြင့်ကျွန်ုပ်တို့သည်အတန်းအစားဖိုင်များ, ပြင်ဆင်မှုဖိုင်များ, စာကြည့်တိုက်များနှင့်အခြားအရင်းအမြစ်များကိုလမ်းညွှန်များစွာတွင်ထိရောက်စွာရှာဖွေနိုင်သည်။
Continue_path သည် Executing, Fopen နှင့်အခြားလုပ်ဆောင်မှုများ ပါ 0 င် သည့် အခါ PHP ဖိုင်များအတွက်ဖိုင်များအတွက်ရှာဖွေသောလမ်းကြောင်းများစာရင်းဖြစ်သည်။ ၎င်းသည် system path ခွဲခြမ်းစိတ်ဖြာခြင်းနှင့်ဆက်နွှယ်သောလမ်းကြောင်း strings အစုတခုဖြစ်သည်။ ဥပမာအားဖြင့်, UNIX စနစ်များတွင်၎င်းသည်ဤပုံနှင့်တူလိမ့်မည်။
/usr/local/lib/php:/home/user/project/includes
ဆိုလိုသည်မှာသင်ခေါ်ဆိုသောအခါ
include 'myClass.php';
PHP သည် MyClass.php ဖိုင်များကို / usr / local / lib / php / PHP နှင့် / အိမ် / အသုံးပြုသူ / စီမံကိန်း / / ပါ 0 င်သည်။
get_include_path () ကိုလက်ရှိပါ 0 င်သည်။ ပုံမှန်အသုံးပြုမှုသည် debugging or dynaming rotending rotending အတွက်ဖြစ်သည်။
echo get_include_path();
set_includude_path () နှင့် တွဲဖက်. သုံးပါ။
$path = get_include_path();
set_include_path($path . PATH_SEPARATOR . '/home/user/project/lib');
အလယ်အလတ်နှင့်ကြီးမားသော PHP applicationations များတွင် code ကိုအများအပြားလမ်းညွှန်မျိုးစုံဖြင့်ဖြန့်ဝေသည်။
Core စာကြည့်တိုက်: / core
Controller: / App / Controllers
မော်ဒယ် - / / app / models
တတိယပါတီစာကြည့်တိုက်: / ရောင်းချသူ
အကယ်. ဖိုင်တစ်ခုဖွင့်သည့်အခါတိုင်းပကတိလမ်းကြောင်းကိုအသုံးပြုပါကကုဒ်သည်ကြာရှည်စွာထိန်းသိမ်းရန်ခက်ခဲပြီးခက်ခဲလိမ့်မည်။ ထည့်သွင်းခြင်းအားဖြင့်ကျွန်ုပ်တို့သည်ဤလမ်းညွှန်များအားလုံးကိုလမ်းကြောင်းသို့ထည့်နိုင်သည်။
set_include_path(
implode(PATH_SEPARATOR, [
'/var/www/html/core',
'/var/www/html/app/controllers',
'/var/www/html/app/models',
'/var/www/html/vendor',
get_include_path()
])
);
Set up ပြီးတာနဲ့သင်လမ်းမအတွက်စိတ်ပူစရာမလိုဘဲအတန်းများသို့မဟုတ် configuration files များကိုအလွယ်တကူတင်နိုင်သည်။
require_once 'UserController.php';
require_once 'Database.php';
ပိုမိုတိုးတက်စေရန်ပိုမိုတိုးတက်စေရန်၎င်းကို spl_autoload_register () ကို အသုံးပြု. အလိုအလျောက်တင်ဆောင်သည့်ယန္တရားနှင့် တွဲဖက်. အသုံးပြုလေ့ရှိသည်။
spl_autoload_register(function ($className) {
include $className . '.php';
});
Complet_path နှင့်အတူပေါင်းစပ်ထားသော PHP သည် Set Paths တွင် $ classname.php ဖိုင်ကိုရှာဖွေလိမ့်မည်။ ဤနည်းအားဖြင့်သင်သည် PSR-0 / PSR-4 ကဲ့သို့သောအလိုအလျောက်တင်ခြင်းကိုမူဘောင်ကိုမမိတ်မဖွဲ့ဘဲအကောင်အထည်ဖော်နိုင်သည်။
PHPP.ini တွင်ကမ္ဘာလုံးဆိုင်ရာ 0 င်ရောက်ခြင်းကိုသင်ထည့်နိုင်သည်။
include_path = ".:/var/www/html/includes:/var/www/html/vendor"
သို့မဟုတ်၎င်းကို .htaccess ဖိုင် (Apache ကိုသာ) တွင်ထားပါ။
php_value include_path ".:/var/www/html/includes:/var/www/html/vendor"
ဟုတ်ပါတယ်, ပြောင်းလွယ်ပြင်လွယ်ဆုံးနည်းက entry file ထဲမှာအဲဒါကို entry file ထဲမှာ dynamically လုပ်ထားတာပါ။
define('BASE_PATH', dirname(__FILE__));
set_include_path(
implode(PATH_SEPARATOR, [
BASE_PATH . '/core',
BASE_PATH . '/lib',
BASE_PATH . '/modules',
BASE_PATH . '/vendor',
get_include_path()
])
);
သင်ဟာစီးပွားရေးအဆင့်စနစ်တစ်ခုကိုရေးဆွဲနေပြီဆိုပါစို့။
/var/www/html/
├── index.php
├── core/
│ └── App.php
├── lib/
│ └── Utils.php
├── modules/
│ └── Auth.php
├── vendor/
│ └── autoload.php
လမ်းကြောင်းကို index.php တွင်ထားပါ။
define('BASE_PATH', __DIR__);
set_include_path(
implode(PATH_SEPARATOR, [
BASE_PATH . '/core',
BASE_PATH . '/lib',
BASE_PATH . '/modules',
BASE_PATH . '/vendor',
get_include_path()
])
);
require_once 'App.php';
require_once 'Utils.php';
require_once 'Auth.php';
အကယ်. ဤ module များအကြားအပြန်အလှန်မှီခိုမှုရှိလျှင်ဤယန္တရားသည် module reusate and Code ထိန်းသိမ်းရေးကိုထိန်းသိမ်းထားနိုင်လိမ့်မည်။
PHP သည် chat_path တွင်လမ်းကြောင်းများအလိုက်ဖိုင်များကိုရှာဖွေလိမ့်မည်။ ထို့ကြောင့်ဖိုင်၏မှားယွင်းသောဗားရှင်းကိုမတင်ကာကွယ်ကာကွယ်မှုမှကာကွယ်ရန်လမ်းကြောင်း၏ ဦး စားပေးကိုဂရုတစိုက်စီစဉ်သင့်သည်။ ဥပမာအားဖြင့်, သင်သည်တတိယပါတီလမ်းကြောင်းမတိုင်မီဒေသစီမံကိန်းကိုဒေသတွင်းစီမံကိန်းသို့နေရာချနိုင်သည်။
set_include_path(
implode(PATH_SEPARATOR, [
BASE_PATH . '/app',
BASE_PATH . '/lib',
BASE_PATH . '/vendor/gitbox.net/framework',
get_include_path()
])
);
Get_intude_path () နှင့် set_include_path () သည်ကြီးမားသော PHP applications များကိုစုစည်းရန်မရှိမဖြစ်လိုအပ်သောကိရိယာများဖြစ်သည်။ EntoT_path ကိုကျိုးကြောင်းဆီလျော်စွာ configuring လုပ်ခြင်းအားဖြင့်အလိုအလျောက် 0 င်ရောက်ခြင်းယန္တရားနှင့်ပေါင်းစပ်ခြင်းအားဖြင့်ကုဒ်တင်ခြင်းသည်ပိုမိုစမတ်ကျပြီးပိုမိုတိကျနိုင်သည်။ ၎င်းသည် submodules, စာကြည့်တိုက်ည့်သည်များနှင့်အစိတ်အပိုင်းများကိုအသုံးပြုသောကြီးမားသောစီမံကိန်းများအတွက် decouple နှင့် modulating အောင်မြင်ရန်အတွက်အရေးပါသောခြေလှမ်းဖြစ်သည်။
Configuration အနည်းငယ်သာရှိသောသင်၏ PHP application သည်ဖွဲ့စည်းတည်ဆောက်ပုံနှင့်ထိန်းသိမ်းခြင်းတို့အတွက်ကြီးမားသောခြေလှမ်းတစ်ခုပြုလုပ်နိုင်သည်။