我正在尋找一種更好的方法來處理 PHP 中的相對路徑。我遇到的一個問題是包含來自子目錄的文件,該子目錄也包含文件。使用此過程導致相對路徑中斷。如果文件不存在,則通過更改變量(路徑)來緩解此問題。但是,出于某種原因,我不太滿意,因為我認為必須有更好的方法來處理這個問題。例子: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) 并具有以下代碼以修復損壞的鏈接下面是我使用的代碼,它確實解決了問題,但我只是在驗證這是否可以,或者是否有更好的方法來處理相對文件路徑。 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;雖然我已經實現了我的目標,但我只想繼續采用最佳實踐并盡量減少草率的方法。
1 回答

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