bandwidthThrottle\tokenBucket\storage\StorageTest::provideStorageFactories PHP Метод

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

Provides uninitialized Storage implementations.
public provideStorageFactories ( ) : callable[][]
Результат callable[][] Storage factories.
    public function provideStorageFactories()
    {
        $cases = [[function () {
            return new SingleProcessStorage();
        }], [function () {
            return new SessionStorage("test");
        }], [function () {
            vfsStream::setup('fileStorage');
            return new FileStorage(vfsStream::url("fileStorage/data"));
        }], [function () {
            $pdo = new \PDO("sqlite::memory:");
            $pdo->setAttribute(\PDO::ATTR_ERRMODE, \PDO::ERRMODE_EXCEPTION);
            return new PDOStorage("test", $pdo);
        }], [function () {
            return new IPCStorage(ftok(__FILE__, "a"));
        }]];
        if (getenv("MYSQL_DSN")) {
            $cases[] = [function () {
                $pdo = new \PDO(getenv("MYSQL_DSN"), getenv("MYSQL_USER"));
                $pdo->setAttribute(\PDO::ATTR_ERRMODE, \PDO::ERRMODE_EXCEPTION);
                $pdo->setAttribute(\PDO::ATTR_AUTOCOMMIT, false);
                return new PDOStorage("test", $pdo);
            }];
        }
        if (getenv("PGSQL_DSN")) {
            $cases[] = [function () {
                $pdo = new \PDO(getenv("PGSQL_DSN"), getenv("PGSQL_USER"));
                $pdo->setAttribute(\PDO::ATTR_ERRMODE, \PDO::ERRMODE_EXCEPTION);
                return new PDOStorage("test", $pdo);
            }];
        }
        if (getenv("MEMCACHE_HOST")) {
            $cases[] = [function () {
                $memcached = new \Memcached();
                $memcached->addServer(getenv("MEMCACHE_HOST"), 11211);
                return new MemcachedStorage("test", $memcached);
            }];
        }
        if (getenv("REDIS_URI")) {
            $cases["PHPRedisStorage"] = [function () {
                $uri = parse_url(getenv("REDIS_URI"));
                $redis = new Redis();
                $redis->connect($uri["host"]);
                return new PHPRedisStorage("test", $redis);
            }];
            $cases["PredisStorage"] = [function () {
                $redis = new Client(getenv("REDIS_URI"));
                return new PredisStorage("test", $redis);
            }];
        }
        return $cases;
    }