public function validate($value) { parent::validate($value); $pattern = self::PATTERN; $parts = explode(":", $value); if (count($parts) < 2 || $parts[0] !== self::DRIVERNAME || !preg_match("/{$pattern}/is", $parts[1])) { throw new ErrorException("Invalid DSN for inmemory database: '{$value}'"); } }
public function __construct($dsn, $doInitDatabaseAdapters = true) { if (!$dsn instanceof Dsn) { $dsn = Dsn::factorizeDSN($dsn); } $this->dsn = $dsn; if ($doInitDatabaseAdapters) { $this->initDatabaseAdapters(); } }
/** * Creates a PDO instance representing a connection to a database * @link http://www.php.net/manual/en/pdo.construct.php * @param dsn * @param username * @param passwd * @param options[optional] */ public function __construct($dsn, $username = "", $passwd = "", $options = array(), Database $database = null) { if (!$dsn instanceof Dsn) { $dsn = Dsn::factorizeDSN($dsn); } if (is_null($database)) { $database = new Database($dsn); } $this->dsn = $dsn; $this->options = $options; $this->databaseResource = $database; $this->databaseResource->setCurrentDatabaseType($dsn->getDriverName()); }