Есть ли способ получить .env varables в мой файл app.json? - PullRequest
0 голосов
/ 05 февраля 2019

Я развернул свое приложение на 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 без показа конфиденциальной информации.

...