<?php
final class app
{
    protected static $_instance = null;

    protected $_data = array();

    protected function __construct()
    {
        $this->_data['config']  = include_once(file_exists('../config.dist.php') ? '../config.dist.php' : '../config.php');
        $this->_data['drivers'] = 'drivers/';
    }

    public static function instance()
    {
        if (!self::$_instance) {
            self::$_instance = new self;
        }

        return self::$_instance;
    }

    public function __get($key)
    {
        return isset($this->_data[$key]) ? $this->_data[$key] : null;
    }

    public function __set($key, $value)
    {
        $this->_data[$key] = $value;
    }
}

<?php
final class app
{
    protected static $_instance = null;

    protected $_data = array();

    protected function __construct()
    {
        $this->_data['config']  = include_once(file_exists('../config.php') ? '../config.php' : '../config.dist.php');
        $this->_data['drivers'] = 'drivers/';
    }

    public static function instance()
    {
        if (!self::$_instance) {
            self::$_instance = new self;
        }

        return self::$_instance;
    }

    public function __get($key)
    {
        return isset($this->_data[$key]) ? $this->_data[$key] : null;
    }

    public function __set($key, $value)
    {
        $this->_data[$key] = $value;
    }
}

Include custom config IF present
Include custom config IF present

Reverted the logic:
- `config.php` could not exists
- `config.dist.php` should exists by design instead