我正在使用一个现有的 PHP 软件,它广泛使用了__FILE__
魔法常数,需要引导文件,除其他外,例如:
require dirname(__FILE__) . '/path/to/config.php';
现在我在同一台服务器上有几个网站运行这个软件。
所有网站都有文件的副本,它可以工作,但我想将“通用”文件(类、控制器等)集中到:
- 减少文件数量
- 简化部署
起初,我考虑为“通用”文件使用符号链接,以及为“特定”文件使用简单文件夹:
config
classes -> /path/to/common/classes
controllers -> /path/to/common/controllers
...
...但问题是__FILE__
解决了符号链接
自 PHP 4.0.2 起,
__FILE__
始终包含一个绝对路径,符号链接已解析,而在旧版本中,它在某些情况下包含相对路径。
这意味着使用该常量的所有内容都将解析相对于“通用”文件的路径,这不是我想要的。
我知道我可以使用$_SERVER['SCRIPT_FILENAME]
,但我不想修改我正在使用的软件的代码,这将无法维护。
有没有其他方法可以实现这一目标?
也许使用带有某种共享文件夹的虚拟机(每个网站一个)?(我根本不是专家)