目前,我正在为数据库驱动的网站进行大量更新。
所以在 webroot 中有一个名为 db.php 的文件,它包含在每个页面中。它具有与 SQL 数据库的连接详细信息。这默认为实时数据库。
我们还有一个名为 db.local.php 的文件。现在,如果此文件存在,则其中的连接详细信息将覆盖默认值。因此,此文件不受源代码控制,因为它对于每个设置都是唯一的。
我们通过以下方式检查文件是否存在:
if(file_exists(getcwd().'/db.local.php')) {
require_once('db.local.php');
} else {
//default database details
}
问题是我们从多个文件夹中使用这个文件,而不仅仅是 webroot(例如,从 webroot/admin 调用的脚本的 cwd 将是 webroot/admin 而不仅仅是 webroot)。因此,如果从另一个文件夹中的脚本调用 db.php,则当前工作目录将不是 webroot,因此我们不会看到 db.local.php。这很糟糕,因为我们使用了不正确的数据库。
有办法解决这个问题吗?(就像一种检查从中提取的文件目录的方法,而不是检查脚本的执行位置)。或者有没有比已经实施的更好的方法来解决这个问题?