Update PicoDb
This commit is contained in:
34
vendor/PicoDb/Database.php
vendored
34
vendor/PicoDb/Database.php
vendored
@@ -4,6 +4,7 @@ namespace PicoDb;
|
|||||||
|
|
||||||
class Database
|
class Database
|
||||||
{
|
{
|
||||||
|
private static $instances = array();
|
||||||
private $logs = array();
|
private $logs = array();
|
||||||
private $pdo;
|
private $pdo;
|
||||||
|
|
||||||
@@ -11,7 +12,6 @@ class Database
|
|||||||
public function __construct(array $settings)
|
public function __construct(array $settings)
|
||||||
{
|
{
|
||||||
if (! isset($settings['driver'])) {
|
if (! isset($settings['driver'])) {
|
||||||
|
|
||||||
throw new \LogicException('You must define a database driver.');
|
throw new \LogicException('You must define a database driver.');
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -30,6 +30,26 @@ class Database
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public static function bootstrap($name, \Closure $callback)
|
||||||
|
{
|
||||||
|
self::$instances[$name] = $callback;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public static function get($name)
|
||||||
|
{
|
||||||
|
if (! isset(self::$instances[$name])) {
|
||||||
|
throw new \LogicException('No database instance created with that name.');
|
||||||
|
}
|
||||||
|
|
||||||
|
if (is_callable(self::$instances[$name])) {
|
||||||
|
self::$instances[$name] = call_user_func(self::$instances[$name]);
|
||||||
|
}
|
||||||
|
|
||||||
|
return self::$instances[$name];
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
public function setLogMessage($message)
|
public function setLogMessage($message)
|
||||||
{
|
{
|
||||||
$this->logs[] = $message;
|
$this->logs[] = $message;
|
||||||
@@ -77,19 +97,25 @@ class Database
|
|||||||
|
|
||||||
public function startTransaction()
|
public function startTransaction()
|
||||||
{
|
{
|
||||||
$this->pdo->beginTransaction();
|
if (! $this->pdo->inTransaction()) {
|
||||||
|
$this->pdo->beginTransaction();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
public function closeTransaction()
|
public function closeTransaction()
|
||||||
{
|
{
|
||||||
$this->pdo->commit();
|
if ($this->pdo->inTransaction()) {
|
||||||
|
$this->pdo->commit();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
public function cancelTransaction()
|
public function cancelTransaction()
|
||||||
{
|
{
|
||||||
$this->pdo->rollback();
|
if ($this->pdo->inTransaction()) {
|
||||||
|
$this->pdo->rollback();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user