簡體   English   中英

使用絕對或相對路徑?

[英]use absolute or relative path?

在我的config.php中,我有所有常量我將PATH設置為絕對路徑。

但這意味着當我移動我的應用程序文件夾時,我必須更改此路徑。

我想知道是否更好地設置相對路徑,這樣每當我在生產和開發文件夾之間移動我的應用程序時,我都不必改變它。

當你在文件夾之間移動時,你們怎么做?

我發現的最好方法是執行以下操作:

define("PATH", realpath(dirname(__FILE__)));

這為您提供了當前文件的目錄。 如果在settings / bootstrap / init文件中執行此操作,則可以將其提供給應用程序,它適用於任何文件系統。

__FILE__是你的朋友。

define('BASE_PATH', dirname(realpath(__FILE__)));

這將使您的腳本更具可移植性。

包括這樣的文件

include BASE_PATH . 'includes/header.php';

IMO,絕對路徑是壞消息。 即使您不打算搬家,您的托管服務提供商也可能會讓您感動,就像DreamHost最近給我做的那樣。 我很好......但是在他們的wiki上有14個引用“path”: http//wiki.dreamhost.com/Server_Moves

我做了三件事來解決這個問題:

  1. 第一種是使用相對於當前文件的路徑,並使用dirname(__FILE__).包含內容dirname(__FILE__).

  2. 第二種是使用加載器包括所有頁面加載。 該文件有一個責任:通常通過相對調用來查找include目錄。 只要這種相對關系保持不變,就不需要改變。

  3. 我還想支持屬於安裝而不是代碼庫的自定義設置。 這是通過包含機制完成的,並覆蓋了一些特定於代碼所在服務器的設置。

暫無
暫無

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

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