簡體   English   中英

在PHP中定義路徑的最佳方法

[英]Best way to define path in PHP

這是我的代碼

define('BASE_PATH', realpath(__DIR__) . DIRECTORY_SEPARATOR);

define('LIB', BASE_PATH . 'lib' . DIRECTORY_SEPARATOR);
    define('FRAMEWORK', LIB . 'framework' . DIRECTORY_SEPARATOR);
        define('DATABASE', FRAMEWORK . 'database' . DIRECTORY_SEPARATOR);
        define('DATETIME', FRAMEWORK . 'datetime' . DIRECTORY_SEPARATOR);
        define('AUTOLOADER', FRAMEWORK . 'autoloader' . DIRECTORY_SEPARATOR);
        define('FUNCTIONS', FRAMEWORK . 'functions' . DIRECTORY_SEPARATOR);
        define('ROUTER', FRAMEWORK . 'router' . DIRECTORY_SEPARATOR);

define('INC', BASE_PATH . 'inc' . DIRECTORY_SEPARATOR);
define('ADMIN', BASE_PATH . 'admin' . DIRECTORY_SEPARATOR);
define('EXT', BASE_PATH . 'ext' . DIRECTORY_SEPARATOR);
    define('MODULES', EXT . 'modules' . DIRECTORY_SEPARATOR);
    define('PLUGINS', EXT . 'plugins' . DIRECTORY_SEPARATOR);
    define('THEMES', EXT . 'themes' . DIRECTORY_SEPARATOR);

class Path {
    public $paths = array(
        'CMS' => BASE_PATH,
        'CMS\Lib' => LIB,
        'CMS\Framework' => FRAMEWORK,
        'CMS\Framework\Database' => DATABASE,
        'CMS\Framework\Datetime' => DATETIME,
        'CMS\Framework\Functions' => FUNCTIONS
    );
}

由於我無法在類Path屬性中使用函數甚至無法連接字符串(PHP不允許這樣做),因此我先定義路徑,然后再對屬性的數組值使用定義。

這樣做對嗎? 有沒有更好的解決方案?
PS我使用Path類為每個命名空間提供基本路徑(我想在PSR4 Autoloader上使用它)而且,我不只是調用autoloader來注冊命名空間,因為我認為最好將其分開。如果客戶想要更改路徑,則無需查看業務邏輯

您可以創建一個配置文件,我認為語法要友好得多

PHP中的配置文件

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM