final class PgSqlSessionFactory
    implements SessionFactory
Public API: explicitly declared with @visibility public.

Factory for creating Session instances pre-configured for PostgreSQL.

Create a session with a successful empty catalog connectiondoctest
$statement = new class implements \ZtdQuery\Connection\StatementInterface { public function execute(?array $params = null): bool { return true; } public function fetchAll(): array { return []; } public function resultColumns(\ZtdQuery\Platform\ResultColumnTypeResolver $typeResolver): array { return []; } public function rowCount(): int { return 0; } };
    $connection = new class($statement) implements \ZtdQuery\Connection\ConnectionInterface { public function __construct(private \ZtdQuery\Connection\StatementInterface $statement) {} public function query(string $sql): \ZtdQuery\Connection\StatementInterface|false { return $this->statement; } };
    $session = (new \ZtdQuery\Platform\Postgres\PgSqlSessionFactory())->create($connection, new \ZtdQuery\Config\ZtdConfig());
    $session->isEnabled() // => true
    $session->splitStatements('SELECT 1; SELECT 2') // => ['SELECT 1', 'SELECT 2']

Methods§

public function create(ConnectionInterface $connection, ZtdConfig $config): Session
Public API: explicitly declared with @visibility public.

{@inheritDoc}

Parameters

Returns

Configure a session for a custom connection adapterdoctest
$statement = new class implements \ZtdQuery\Connection\StatementInterface { public function execute(?array $params = null): bool { return true; } public function fetchAll(): array { return []; } public function resultColumns(\ZtdQuery\Platform\ResultColumnTypeResolver $typeResolver): array { return []; } public function rowCount(): int { return 0; } };
    $connection = new class($statement) implements \ZtdQuery\Connection\ConnectionInterface { public function __construct(private \ZtdQuery\Connection\StatementInterface $statement) {} public function query(string $sql): \ZtdQuery\Connection\StatementInterface|false { return $this->statement; } };
    $session = (new \ZtdQuery\Platform\Postgres\PgSqlSessionFactory())->create($connection, new \ZtdQuery\Config\ZtdConfig());
    $session->isEnabled() // => true
    $session->splitStatements('SELECT 1; SELECT 2') // => ['SELECT 1', 'SELECT 2']
Test cases 10
Calls 24

Test cases 11§

Test cases that cover or call this symbol, from the coverage report and from the analyzed test sources.

Dedicated tests 10
Other tests reaching this symbol 1

Relations§

Constant reads 1