php包括链

php包括链,php,architecture,include,chaining,Php,Architecture,Include,Chaining,这是我的问题,我有一个旧网站,其中包含一些像这样的模块 root_dir |-->module1 |-->module2 |-->module3 为了满足我的需要,我在这个结构中添加了一个子层,如下所示 root_dir |-->module1 |-->module2 |-->submodule2.1 |-->module3 我的问题是每个模块都包含一个“include.php”文件,然

这是我的问题,我有一个旧网站,其中包含一些像这样的模块

root_dir
    |-->module1
    |-->module2
    |-->module3
为了满足我的需要,我在这个结构中添加了一个子层,如下所示

root_dir
    |-->module1
    |-->module2
        |-->submodule2.1
    |-->module3
我的问题是每个模块都包含一个“include.php”文件,然后包含其他文件,因此如果我将include.php的第一个路径修复为../include.php,它将在第二个include文件处崩溃

除了复制所有文件和修复include的路径之外,这里还有好的解决方法吗

Thx

您是否尝试将以下内容用于您的通用include.php文件:

include_once('../include.php');
或者在公共祖先文件中包含一次代码

还是我过于简化了?这些选项对您有用吗?

“两者都是独立的,但它们包含相同的include.php(加载站点的配置环境)”


您最好已经加载了配置,或者使用某种方法(从中获取配置数据的工厂、全局设置类等)来加载设置,而不需要了解任何实际文件结构(从模块的角度)。同样的道理也适用于您在模块中使用的所有其他内容(如数据库对象)。

只是想问一个问题:module2包含include.php,而include.php又包含submodule2.1,然后在submodule2.1的文件夹中包含include.php;那么,如果这是链的末尾,那么您希望包含什么,而其他所有内容都可能更早地包含?实际上,更像是子模块2.1和模块2根本没有链接,它们都是独立的,但它们包含相同的include.php(加载站点的配置环境),在module2中,它工作得很好,因为它是为此而设计的,所以有类似的东西,对于submodule2.1,我需要调整路径,但是我在include.php中包含的文件出现了错误…(很难解释,哎哟,希望你理解我)我认为它不会工作,因为所有模块都是独立的,没有祖先(旧网站)基本上我想包括包含链的开始,但从不同的文件夹层次结构,它适用于第一个,因为我修改了路径,但随后它会产生错误…可能是dirname_FILE_uuu有问题,但我只是在错过某个问题之前问一下…@krifur:Using
dirname(u FILE_uuu)贯穿整个代码(或者在更新的版本中是
\uuuu DIR\uuuu
)听起来是对的。永远不要假设一个工作目录。当然,您可以自己调用
chdir