Nette\Database\Connection::__construct PHP Метод

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

public __construct ( $dsn, $user = NULL, $password = NULL, array $options = NULL )
$options array
    public function __construct($dsn, $user = NULL, $password = NULL, array $options = NULL)
    {
        if (func_num_args() > 4) {
            // compatibility
            trigger_error(__METHOD__ . " fifth argument is deprecated, use \$options['driverClass'].", E_USER_DEPRECATED);
            $options['driverClass'] = func_get_arg(4);
        }
        $this->params = [$dsn, $user, $password];
        $this->options = (array) $options;
        if (empty($options['lazy'])) {
            $this->connect();
        }
    }

Usage Example

 public function __construct($dsn, $user = NULL, $password = NULL, array $options = NULL)
 {
     $container = \Testbench\ContainerFactory::create(FALSE);
     $this->onConnect[] = function (NetteDatabaseConnectionMock $connection) use($container) {
         if ($this->__testbench_databaseName !== NULL) {
             //already initialized (needed for pgsql)
             return;
         }
         try {
             $config = $container->parameters['testbench'];
             if ($config['shareDatabase'] === TRUE) {
                 $registry = new \Testbench\DatabasesRegistry();
                 $dbName = $container->parameters['testbench']['dbprefix'] . getenv(\Tester\Environment::THREAD);
                 if ($registry->registerDatabase($dbName)) {
                     $this->__testbench_database_setup($connection, $container, TRUE);
                 } else {
                     $this->__testbench_databaseName = $dbName;
                     $this->__testbench_database_change($connection, $container);
                 }
             } else {
                 // always create new test database
                 $this->__testbench_database_setup($connection, $container);
             }
         } catch (\Exception $e) {
             \Tester\Assert::fail($e->getMessage());
         }
     };
     parent::__construct($dsn, $user, $password, $options);
 }