定义一个总是返回特定文件夹的常量


efining a constant that always returns a specific folder

我使用的是带有各种目录的自制框架,我想创建一个constant,它基本上输出我的应用程序文件夹所在的目录。我可以通过声明

来实现这一点

define("DOC_ROOT", "/var/www/html/public/my-site.tld/");

在我的public/index.php文件的某个地方,但出于某种原因,我想使用__DIR__, realpath(), dirname()...的组合,因为我仍然不知道为什么它不适合我。

现在,让我们假设这是我正在使用的文件夹结构。

my-site.tld/
  src/
    public/
       index.php
    app/
       configs/
          constants.php/
       views/
       controllers/
       bootstrap.php

由于bootstrap.php首先需要constants.php,然后index.php加载bootstrap.php,如

所示
// public/index.php
require '../boostrap.php`; 

可以假设该常量是应用程序中首先运行的常量。现在,问题是声明一个doc根,它只输出my-site的完整路径。TLD或者换句话说

/var/www/html/公共/my-site.tld/

对我来说已经变得不可能了,部分原因是回显DOC_ROOT会在不同的文件中给出不同的路径。所以,我问有没有一种方法可以在常量文件中定义DOC_ROOT,无论它在哪里被调用,它都会输出主应用程序文件夹而不是像

这样手动操作

define("DOC_ROOT", "/var/www/html/public/my-site.tld/");

这需要我手动更改路径,我所做的更改或重命名我的文件夹

将URL存储在标准常量中:

define("CONSTANTNAME",     "VALUE");

PHP常量文档