我已经将应用程序部署到了heroku,但是我想将我的.json文件(用于存储数据库信息的文件)保存到heroku的网络服务器上,而不必将文件推送到github(忽略文件)。我得到了使用.env文件的建议。是否可以将信息从.env文件传递到.json文件,还是我需要以某种方式更改代码?
我已经尝试登录heroku在服务器上添加文件,但是它不起作用,因为当应用程序重启时,它会重置。
app.json
{
"db": {
"dsn": "mysql:host=adress;dbname=database;charset=utf8",
"user": "user",
"password": "pass"
}
}
Connection.php
<?php
namespace TwitterClone\Core;
use \PDO;
use TwitterClone\Core\Config;
use TwitterClone\Utils\Singleton;
class Connection extends Singleton
{
public $handler;
protected function __construct()
{
try {
$config = Config::getInstance()->get('db');
$this->handler = new PDO(
$config['dsn'],
$config['user'],
$config['password']
);
$this->handler->setAttribute(PDO::ATTR_DEFAULT_FETCH_MODE, PDO::FETCH_ASSOC);
} catch (PDOException $e) {
echo $e->getMessage();
}
}
}
Config.php
<?php
namespace TwitterClone\Core;
use TwitterClone\Utils\Singleton;
use TwitterClone\Exceptions\NotFoundException;
/**
* Singleton
*/
class Config extends Singleton
{
private $data;
protected function __construct()
{
$json = file_get_contents(__DIR__ . '/../../config/app.json');
$this->data = json_decode($json, true);
}
public function get($key)
{
if (!isset($this->data[$key])) {
throw new NotFoundException("Key $key not in config.");
}
return $this->data[$key];
}
}
我想将文件推送到heroku的服务器上,而不是github上。或在不显示敏感信息的情况下将信息获取到app.json文件的方法。