php声明应用程序根

php声明应用程序根,php,Php,我有一个小问题:我在一个更大的web项目中作为子目录开始了一个项目。因此,web文件路径类似于/./myProject。但事情已经有所进展,我意识到这应该是它自己的项目。但是,我希望能够将它保留在它的位置(作为子目录),并使它成为一个子域,myProject成为根目录。(还有一种可能性是,我的项目将被镜像到一个库站点,在那里它将一度位于一个子目录中) 我遇到的问题是,在某些情况下,我有html\u部分文件,(例如页眉或页脚)。但这些部分的相对路径因您在文件树中的位置而异。我最初总是从根本上解决这

我有一个小问题:我在一个更大的web项目中作为子目录开始了一个项目。因此,web文件路径类似于/./myProject。但事情已经有所进展,我意识到这应该是它自己的项目。但是,我希望能够将它保留在它的位置(作为子目录),并使它成为一个子域,
myProject
成为根目录。(还有一种可能性是,我的项目将被镜像到一个库站点,在那里它将一度位于一个子目录中)

我遇到的问题是,在某些情况下,我有
html\u部分文件
,(例如页眉或页脚)。但这些部分的相对路径因您在文件树中的位置而异。我最初总是从根本上解决这个问题

但是现在,你看,根据我的项目所在的地方,根会有所不同。我想做的是将myProject声明为“应用程序根目录”,然后能够基于此
application
root而不是
web根目录使用相对路径。这样,“myProject”中的所有相对路径都将工作,无论
myProject`位于web路径的何处


PHP有没有一种方法来声明类似于
应用程序根目录的东西?如果有,您能给我解释一下或者让我看看它的文档吗。谢谢

您只需在应用程序根目录中有一个PHP文件,该文件将其所在的目录定义为应用程序根目录。该文件可以如此简单:

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


然后,您可以根据需要包含此文件,并将所有文件路径都从
APPLICATION\u ROOT
中删除。请注意,
APPLICATION\u ROOT
不会有此处定义的尾随斜杠(除非您的文件恰好位于计算机根目录中,这是不可能的)。

您可以在应用程序根目录中有一个PHP文件,该文件将其所在的目录定义为应用程序根目录。该文件可以如此简单:

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


然后,您可以根据需要包含此文件,并将所有文件路径都从
APPLICATION\u ROOT
中删除。请注意,
APPLICATION\u ROOT
不会有此处定义的尾随斜杠(除非您的文件恰好位于计算机根目录中,这是不可能的)。

我通常在前端控制器中执行以下操作:

define('APPLICATION_PATH', realpath(__DIR__));
然后你可以做如下事情:

set_include_path(APPLICATION_PATH . '/include');
或:

如果应用程序未使用前端控制器,则可以在vhost config或.htaccess中定义环境变量:

SetEnv APPLICATION_PATH /full/path/to/my/app
然后使用:

getenv('APPLICATION_PATH')

我通常在前端控制器中执行以下操作:

define('APPLICATION_PATH', realpath(__DIR__));
然后你可以做如下事情:

set_include_path(APPLICATION_PATH . '/include');
或:

如果应用程序未使用前端控制器,则可以在vhost config或.htaccess中定义环境变量:

SetEnv APPLICATION_PATH /full/path/to/my/app
然后使用:

getenv('APPLICATION_PATH')

“前端控制器”是一个技术术语,是指我在应用程序根目录中创建的某个内容还是一个文件(如上面的答案所示)。我以前从未遇到过这个概念。前端控制器是一种设计模式,在这种模式中,每个请求都要经过一个文件(例如index.php)。在这种情况下,很容易添加为每个请求触发的处理。请参阅:“前端控制器”是一个技术术语,指的是我在应用程序根目录中创建的某个文件(如上面的答案所示)。我以前从未遇到过这个概念。前端控制器是一种设计模式,在这种模式中,每个请求都要经过一个文件(例如index.php)。在这种情况下,很容易添加为每个请求触发的处理。请参阅:请原谅我的无知,但是文件路径在编写时会是什么样子
APPLICATION\u ROOT/html\u partials/header.php
?如果您正在执行包含或类似于
include(APPLICATION\u ROOT./html\u partials/header.php')
请原谅我的无知,但是文件路径在编写时会是什么样子
APPLICATION\u ROOT/html\u partials/header.php
?如果您正在执行包含或类似于
include(APPLICATION\u ROOT./html\u partials/header.php')