我正在尝试为不同文件夹中的不同文件连接某个头文件。问题是,例如在/ backend中包含相同文件时,将很容易直接调用它(因为索引也在/ backend中),但是从backend / pages调用它时,它不再调用链接结构,从而导致死链接。
我尝试使用../和不同的头文件进行所有可能的操作,但这是不行的。试图找到下面的URL这样的解决方案的确很接近,但我似乎无法弄清楚。
Root path variable in a PHP project
例如,在包含或要求中自动包含根的最佳方法是什么。
答案 0 :(得分:1)
如果您正在使用一个前端控制器(例如index.php文件)来启动并执行整个应用程序,则可以在其中设置一个常量,例如define('APP_ROOT', __DIR__);
,并将其根设置为您的前控制器。
您可以通过执行APP_ROOT . "/includes/header.php"
如果不使用前端控制器,则可以在每个文件中进行设置。因此,对于后端/页面,它类似于./../includes/header.php
。或更妙的是,使用$_SERVER['DOCUMENT_ROOT']
来获取Web服务器vhosts配置所提供的应用程序的根目录。 (NGINX的Apache最有可能)
$_SERVER['DOCUMENT_ROOT'] . "/app/backend/includes/header.php"
。
答案 1 :(得分:0)
例如,在包含或要求中自动包含根的最佳方法是什么。
我不知道有任何方法可以做到这一点,而无需修改PHP本身并从源代码重新编译,但是我可能是错的。您的根路径将始终存储在$_SERVER['DOCUMENT_ROOT']
中。
我认为您可能想研究的是autoloading,更具体地说是PSR-4和composer。