Tipsy\Db::connect PHP Метод

connect() публичный Метод

public connect ( $args = null )
    public function connect($args = null)
    {
        if (!$args) {
            throw new \Exception('Invalid DB config.');
        }
        $options = [];
        // will overwrite any existing args
        if ($args['url']) {
            $args = array_merge($this->parseUrl($args['url']), $args);
        }
        if ($args['persistent']) {
            $options[\PDO::ATTR_PERSISTENT] = true;
        }
        if ($args['sslca']) {
            $options[\PDO::MYSQL_ATTR_SSL_CA] = $args['sslca'];
            $options[\PDO::ATTR_TIMEOUT] = 4;
            $options[\PDO::ATTR_ERRMODE] = \PDO::ERRMODE_EXCEPTION;
        }
        if (!$args['driver']) {
            $args['driver'] = 'mysql';
        }
        if ($args['driver'] == 'postgres') {
            $args['driver'] = 'pgsql';
        }
        if ($args['driver'] == 'mysql') {
            $args['charset'] = 'utf8';
        }
        if (!$args['dsn']) {
            $args['dsn'] = $args['driver'] . ':host=' . $args['host'] . ($args['port'] ? ';port=' . $args['port'] : '') . ';dbname=' . $args['database'] . ($args['charset'] ? ';charset=' . $args['charset'] : '');
        }
        $db = new \PDO($args['dsn'], $args['user'], $args['pass'], $options);
        $this->_driver = $db->getAttribute(\PDO::ATTR_DRIVER_NAME);
        $db->setAttribute(\PDO::ATTR_ERRMODE, \PDO::ERRMODE_EXCEPTION);
        $db->setAttribute(\PDO::ATTR_EMULATE_PREPARES, $args['sslca'] ? true : false);
        $this->db($db);
        return $this;
    }