在CakePHP中,如何将database.php配置文件移出APP文件夹


In CakePHP, how can I move the database.php config file outside of the APP folder

我试图阻止在代码文件中存储密码和安全信息。我已经成功地将Security.cipherSeed和Security.salt移动到应用程序目录外的Config文件中,并将以下内容放在core.php:中

App::uses('PhpReader', 'Configure');
Configure::config('default', new PhpReader('/etc/');
Configure::load('config.php', 'default');

然而,在上面的例子中,我只能处理键值对,那么我如何从整个应用程序之外的文件加载数据库配置文件呢?我试过在core.php中使用require_once('/etc/database.php'),但没有达到预期效果。

简而言之:

  • 创建config/<filename>.php.default
  • config/<filename>.php添加到.gitignore
  • 执行部署时,使用部署脚本将config/<filename>.php.default复制到config/<filename>.php。这可以使用作曲家事件来完成。只需执行一个php脚本即可完成此任务
  • 使用env-vars在不编辑文件的情况下设置实际的配置值

这将避免任何"个人"自定义配置进入存储库,但将具有默认设置的文件保留在存储库中。例如,env-var也是设置DB连接的一种非常方便的方式。