1. Go to this page and download the library: Download forrest79/phpgsql-nette library. Choose the download type require.
2. Extract the ZIP file and open the index.php.
3. Add this code to the index.php.
<?php
require_once('vendor/autoload.php');
/* Start to develop here. Best regards https://php-download.com/ */
forrest79 / phpgsql-nette example snippets
$container->getService('database.default.connection'); // for one connection, default
$container->getService('database.first.connection');
class ConnectionFactory implements Forrest79\PhPgSql\Nette\Connection\ConnectionCreator
{
/** @var int */
private $statementTimeout = NULL;
public function __construct(int $sessionTimeout)
{
$this->statementTimeout = $sessionTimeout;
}
/**
* In `$config` array are all values from connection config definition, you can use some special/meta values for your own logic and unset it from `$config` before sending it to `prepareConfig()` function.
*/
public function create(array $config, bool $forceNew, bool $async): MyOwnConnection
{
return (new Connection(
$this->prepareConfig($config), // this will implode array config to string, you can extend this method and add some default settings or your own logic
$forceNew,
$async,
))->addOnConnect(function(Forrest79\PhPgSql\Db\Connection $connection) {
$connection->query(sprintf('SET statement_timeout = %d', $this->statementTimeout));
});
}
protected function prepareConfig(array $config): string
{
return parent::prepareConfig($config + ['connect_timeout' => 5]);
}
}
protected static function backtraceContinueIterate(string $class, string $function): bool
{
return parent::backtraceContinueIterate() // just for sure, you can use multiple extends...
|| (is_a($class, MyOwnFluentQuery::class, TRUE) && ($function === 'count'))
|| (is_a($class, Mapper\Record::class, TRUE) && ($function === 'fetch'));
}
Loading please wait ...
Before you can download the PHP files, the dependencies should be resolved. This can take some minutes. Please be patient.