我有一点问题:我在一个更大的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
的内容,你可以解释一下,或者直接告诉我它的文档。谢谢!
答案 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')