final public static function create(array $params, $adapter = null)
    {
        $adapter = isset($params['_adapter']) ? $params['_adapter'] : $adapter;
        $adapter = strtolower($adapter);
        $classname = __NAMESPACE__.'\\Adapters\\'.ucfirst($adapter);
        if (!class_exists($classname, true)) {
            throw new UnknownAdapter($adapter);
        }
        $params['_adapter'] = $adapter;
        return (new $classname($params));
    }