Example #1
0
<?php

namespace Fabrico\Model;

use PDO;
use Exception;
use Fabrico\Application;
// --------------------------------------
// lasciate ogne speranza, voi ch'intrate
// --------------------------------------
Application::call(function () {
    $key = 'db:' . getenv('APP_ENV');
    // class declaration in conditional statement? yeah. I do what ever the
    // f**k I want, bitch
    switch ($this->conf->get("{$key}:type")) {
        case 'file':
            require sprintf('%s/ModelFileStorage.php', __DIR__);
            Model::setDirectory($this->conf->get("{$key}:flat"));
            break;
        case 'pdo':
            require sprintf('%s/ModelDatabaseStorage.php', __DIR__);
            Model::setConnection(new PDO($this->conf->get("{$key}:dsn"), null, null, [PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION]));
            break;
        default:
            throw new Exception('Invalid db configuration');
    }
});