使用绝对或相对路径?

时间:2010-04-09 01:11:28

标签: php

在我的config.php中,我有所有常量,我将PATH设置为绝对路径。

但这意味着当我移动我的应用程序文件夹时,我必须更改此路径。

我想知道设置相对路径是否更好,每当我在生产和开发文件夹之间移动我的应用程序时,我都不必改变它。

当你在文件夹之间移动时,你们怎么做?

5 个答案:

答案 0 :(得分:8)

我发现的最好方法是执行以下操作:

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

它为您提供当前文件的目录。如果您在settings / bootstrap / init文件中执行此操作,您将可以将其用于您的应用程序,它适用于任何文件系统。

答案 1 :(得分:3)

__FILE__是你的朋友。

答案 2 :(得分:3)

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

这将使您的脚本更具可移植性。

包含这样的文件

include BASE_PATH . 'includes/header.php';

答案 3 :(得分:1)

IMO,绝对路径是坏消息。即使您不打算搬家,您的托管服务提供商也可能会让您感动,就像DreamHost最近给我做的那样。我很好...... 但是在他们的wiki上有14个引用“path”: http://wiki.dreamhost.com/Server_Moves

答案 4 :(得分:1)

我做了三件事来解决这个问题:

  1. 第一种是使用相对于当前文件的路径并使用dirname(__FILE__).包含内容

  2. 第二种是使用加载器包括所有页面加载。该文件有一个责任:通常通过相对调用来查找include目录。只要这种相对关系保持不变,就不需要改变。

  3. 我还想支持属于安装的自定义设置,而不是代码库。这是通过包含机制完成的,并覆盖了一些特定于代码所在服务器的设置。