mirror of
https://github.com/danog/postgres.git
synced 2024-11-30 04:29:12 +01:00
2a1c96761b
Timeout wasn't being properly used and the implementation assumed single watchers on sockets, so it was more complex than needed.
42 lines
1.1 KiB
PHP
42 lines
1.1 KiB
PHP
<?php
|
|
|
|
namespace Amp\Postgres;
|
|
|
|
use AsyncInterop\Promise;
|
|
|
|
/**
|
|
* @param string $connectionString
|
|
* @param int $timeout
|
|
*
|
|
* @return \AsyncInterop\Promise<\Amp\Postgres\Connection>
|
|
*
|
|
* @throws \Amp\Postgres\FailureException If connecting fails.
|
|
* @throws \Error If neither ext-pgsql or pecl-pq is loaded.
|
|
*/
|
|
function connect(string $connectionString, int $timeout = 0): Promise {
|
|
if (\extension_loaded("pq")) {
|
|
return PqConnection::connect($connectionString, $timeout);
|
|
}
|
|
|
|
if (\extension_loaded("pgsql")) {
|
|
return PgSqlConnection::connect($connectionString, $timeout);
|
|
}
|
|
|
|
throw new \Error("This lib requires either pecl-pq or ext-pgsql");
|
|
}
|
|
|
|
/**
|
|
* @param string $connectionString
|
|
* @param int $maxConnections
|
|
* @param int $connectTimeout
|
|
*
|
|
* @return \Amp\Postgres\Pool
|
|
*/
|
|
function pool(
|
|
string $connectionString,
|
|
int $maxConnections = ConnectionPool::DEFAULT_MAX_CONNECTIONS,
|
|
int $connectTimeout = ConnectionPool::DEFAULT_CONNECT_TIMEOUT
|
|
): Pool {
|
|
return new ConnectionPool($connectionString, $maxConnections, $connectTimeout);
|
|
}
|