如何包含文件以便项目在多个开发环境中工作

时间:2012-12-15 03:29:55

标签: php

我正在用PHP构建我的第一个网站。我正在本地测试它,我正在开发它的两台电脑,我的家用电脑和我的Uni电脑,主项目存储在Dropbox中。

项目在两台计算机上都有不同的根路径,因为它们具有不同的用户名。

'/家/ vadar /升降梭箱/ ENELWebsite /的public_html /'

'/家/ tcpb1 /升降梭箱/ ENELWebsite /的public_html /'

这显然已经成为一个问题,因为使用根路径包含文件会导致一台计算机出错。

我最初尝试在我的索引页面中包含它,但它还需要包含它的包含文件的根路径,我必须在计算机之间进行更改。

$dir_home = '/home/vadar/Dropbox/ENELWebsite/public_html/';
$dir_uni = '/home/tcpb1/Dropbox/ENELWebsite/public_html/';
if(file_exists($dir_home) OR is_dir($dir_home)){
    define('APP_DIR', $dir_home); //home comp
}
elseif(file_exists($dir_uni) OR is_dir($dir_uni)){
    define('APP_DIR', $dir_uni); //uni comp
}
else{
    echo 'No include directory exists';
}

解决此问题的最明智的方法是什么?我意识到我可以在其中任何一个上创建一个新的用户文件夹,并将Dropbox文件夹移入其中,但我确信有一种更聪明的方法可以在项目中包含文件。

2 个答案:

答案 0 :(得分:3)

使用$_SERVER['DOCUMENT_ROOT']查找根文件夹。

$dir = $_SERVER['DOCUMENT_ROOT']; // will return /home/vadar/Dropbox/ENELWebsite/public_html/
if(file_exists($dir)){ //just to make sure
    define('APP_DIR', $dir); //home comp
}
else{
    echo 'No include directory exists';
}

答案 1 :(得分:0)

define('APP_DIR', dirname(__DIR__));     
ini_set('include_path', ini_get('include_path') . PATH_SEPARATOR . APP_DIR);

这将在include路径中插入当前目录。现在,无论您的环境如何,您的包含路径都将始终具有当前目录。

在这种情况下,您不依赖$_SERVER,因为它可以由客户操纵。