engelsystem/src/Database/Db.php

96 lines
2.1 KiB
PHP
Raw Normal View History

<?php
declare(strict_types=1);
namespace Engelsystem\Database;
2018-01-14 01:48:50 +01:00
use Illuminate\Database\Capsule\Manager as CapsuleManager;
use Illuminate\Database\Connection as DatabaseConnection;
use PDO;
/** @deprecated */
class Db
{
protected static CapsuleManager $dbManager;
/**
2018-01-14 01:48:50 +01:00
* Set the database connection manager
*/
public static function setDbManager(CapsuleManager $dbManager): void
{
2018-01-14 01:48:50 +01:00
self::$dbManager = $dbManager;
}
/**
* Run a select query
*
2017-12-25 23:12:52 +01:00
* @return array[]
*/
public static function select(string $query, array $bindings = []): array
{
$return = self::connection()->select($query, $bindings);
2018-01-14 17:47:26 +01:00
// @TODO: Remove type casting
foreach ($return as $key => $value) {
$return[$key] = (array) $value;
}
return $return;
}
2017-08-30 00:07:01 +02:00
/**
* Run a select query and return only the first result or null if no result is found.
2017-08-30 00:07:01 +02:00
*
* @return array|null
*/
public static function selectOne(string $query, array $bindings = []): ?array
{
$result = self::connection()->selectOne($query, $bindings);
2017-08-30 00:07:01 +02:00
2018-01-14 17:47:26 +01:00
// @TODO: remove typecast
$result = (array) $result;
if (empty($result)) {
return null;
}
return $result;
}
/**
* Run an insert query
*/
public static function insert(string $query, array $bindings = []): bool
{
return self::connection()->insert($query, $bindings);
}
/**
* Run an update query
*/
public static function update(string $query, array $bindings = []): int
{
return self::connection()->update($query, $bindings);
}
/**
* Run a delete query
*/
public static function delete(string $query, array $bindings = []): int
{
return self::connection()->delete($query, $bindings);
}
public static function connection(): DatabaseConnection
{
return self::$dbManager->getConnection();
}
/**
* Get the PDO instance
*/
public static function getPdo(): PDO
{
return self::connection()->getPdo();
}
}