php声明应用程序根目录

时间:2012-08-15 16:44:00

标签: php

我有一点问题:我在一个更大的Web项目中作为子目录开始了一个项目。因此,Web文件路径类似于/../myProject。但是事情已经取得了进展,我意识到这应该是它自己的项目。但是,我希望能够将它保留在它(作为子目录)的位置,使其成为一个子域,其中myProject成为根。 (我的项目也有可能在一个图书馆网站上进行镜像,它将在一个子目录中。

我遇到的所有问题是在某些情况下我有html_partial files,(例如页眉或页脚)。但是这些部分的相对路径根据您在文件树中的位置而有所不同。我最初通过回到root来解决这个问题。

但是现在,你看,根据我的项目所处的位置,根将会有所不同。我想要做的是将myProject声明为“应用程序根目录”,然后能够使用基于此application根的相对路径,而不是web root'. This way, all of the relative paths within 'myProject' will work no matter where myProject`存在于Web路径中。

如果有的话,PHP是否有办法声明类似Application Root的内容,你可以解释一下,或者直接告诉我它的文档。谢谢!

2 个答案:

答案 0 :(得分:1)

您可以在应用程序根目录中创建一个PHP文件,该文件将定义它所在的目录作为应用程序根目录。该文件可以像这样简单:

<?php
define('APPLICATION_ROOT', __DIR__);
?>

然后,您可以根据需要包含此文件,并将所有文件路径基于APPLICATION_ROOT。请注意,APPLICATION_ROOT没有此处定义的尾部斜杠(除非您的文件恰好位于计算机根目录中,这是不可能的)。

答案 1 :(得分:0)

我通常在前端控制器中做一些事情:

define('APPLICATION_PATH', realpath(__DIR__));

然后你可以做以下事情:

set_include_path(APPLICATION_PATH . '/include');

或者:

$fp = fopen(APPLICATION_PATH . '/path/to/some/file', 'r');

如果您的应用没有使用前端控制器,您可以在vhost配置或.htaccess中定义环境变量:

SetEnv APPLICATION_PATH /full/path/to/my/app

然后使用:

getenv('APPLICATION_PATH')