我正在尋找一種更好的方法來(lái)處理 PHP 中的相對(duì)路徑。我遇到的一個(gè)問(wèn)題是包含來(lái)自子目錄的文件,該子目錄也包含文件。使用此過(guò)程導(dǎo)致相對(duì)路徑中斷。如果文件不存在,則通過(guò)更改變量(路徑)來(lái)緩解此問(wèn)題。但是,出于某種原因,我不太滿意,因?yàn)槲艺J(rèn)為必須有更好的方法來(lái)處理這個(gè)問(wèn)題。例子:ROOT/config/config.phpROOT/includes/functions.phpROOT/includes/header.php<-- 包括functions.php和config.phpROOT/index.php<-- 包括header.phpROOT/admin/index.php<--- 還包括header.php(as ../includes/header.php) 并具有以下代碼以修復(fù)損壞的鏈接下面是我使用的代碼,它確實(shí)解決了問(wèn)題,但我只是在驗(yàn)證這是否可以,或者是否有更好的方法來(lái)處理相對(duì)文件路徑。 define('PREV_DIR', '../'); $config_file = './config/config.php'; $functions_file = './includes/functions.php'; if ( !file_exists($config_file)) { $config_file = PREV_DIR . './config/config.php'; } if ( !file_exists($functions_file)) { $functions_file = PREV_DIR . './config/config.php'; } include $config_file; include $functions_file;雖然我已經(jīng)實(shí)現(xiàn)了我的目標(biāo),但我只想繼續(xù)采用最佳實(shí)踐并盡量減少草率的方法。
1 回答

拉丁的傳說(shuō)
TA貢獻(xiàn)1789條經(jīng)驗(yàn) 獲得超8個(gè)贊
雖然您的項(xiàng)目足夠簡(jiǎn)單(從我在您的帖子中看到的內(nèi)容),但您可以在配置文件中定義路徑常量,從而只需更改目錄名稱和常量值即可更輕松地重命名/替換它們。
例如:
<?php #index.php
define('ROOT', __dir__);
define('CONFIG_DIR', ROOT . DIRECTORY_SEPARATOR . 'config');
define('INCLUDES_DIR', ROOT . DIRECTORY_SEPARATOR . 'includes');
對(duì)于類,有一個(gè)最常用且強(qiáng)烈推薦的標(biāo)準(zhǔn),那就是PSR-4 Autoload standard,其中有 Namespace/SubNamespaces/ClassName。
- 1 回答
- 0 關(guān)注
- 126 瀏覽
添加回答
舉報(bào)
0/150
提交
取消