cleaning up sqlite connector.

This commit is contained in:
Taylor Otwell 2011-09-28 22:49:20 -05:00
parent 7018b85b4a
commit 1fb70a8568
1 changed files with 8 additions and 0 deletions

View File

@ -12,14 +12,22 @@ public function connect($config)
{ {
$options = $this->options($config); $options = $this->options($config);
// SQLite in-memory databases only live for the lifetime of the current request, and it
// is impossible to create two connections to the same in-memory database.
if ($config['database'] == ':memory:') if ($config['database'] == ':memory:')
{ {
return new PDO('sqlite::memory:', null, null, $options); return new PDO('sqlite::memory:', null, null, $options);
} }
// We will check for the database in the default storage directory for the application.
// Typically, this directory holds all of the SQLite databases for the application.
elseif (file_exists($path = DATABASE_PATH.$config['database'].'.sqlite')) elseif (file_exists($path = DATABASE_PATH.$config['database'].'.sqlite'))
{ {
return new PDO('sqlite:'.$path, null, null, $options); return new PDO('sqlite:'.$path, null, null, $options);
} }
// If we still haven't located the database, we will assume the given database name
// is a fully qualified path to the database on disk and attempt to load it.
elseif (file_exists($config['database'])) elseif (file_exists($config['database']))
{ {
return new PDO('sqlite:'.$config['database'], null, null, $options); return new PDO('sqlite:'.$config['database'], null, null, $options);