<?php

namespace App\Core;

use App\Core\Database\Db;
use Monolog\Handler\StreamHandler;
use Monolog\Logger;
use Dotenv\Dotenv;

class App {
    private Db $db;
    private Logger $logger;

    public function init () {
        $dotenv = Dotenv::createImmutable(__DIR__ . "/../../");
        $dotenv->load();

// create a log channel
        $log = new Logger('name');
        $log->pushHandler(new StreamHandler($_ENV['LOG_FILE'], Logger::WARNING));

// Database
        $db = new Db([
            'dsn' => $_ENV['DB_DSN'],
            'login' => $_ENV['DB_LOGIN'],
            'password' => $_ENV['DB_PASSWORD']
        ]);

        $db->connect();

        $this->db = $db;
        $this->logger = $log;
    }

    /**
     * @return Db
     */
    public function getDb(): Db
    {
        return $this->db;
    }

    /**
     * @return Logger
     */
    public function getLogger(): Logger
    {
        return $this->logger;
    }

}