first commit

This commit is contained in:
Claudecio Martins
2026-06-16 10:04:10 -03:00
commit a951944997
4463 changed files with 419677 additions and 0 deletions
+7
View File
@@ -0,0 +1,7 @@
<?php
namespace WorkbloomERP\Services;
use KrothiumAPI\Database\RedisManager;
class CacheService extends RedisManager {
}
+76
View File
@@ -0,0 +1,76 @@
<?php
namespace WorkbloomERP\Services;
use Throwable;
use KrothiumAPI\Database\DBManager;
class DBService {
protected string $connection;
protected ?string $schema;
public function __construct(string $connection = 'DEFAULT', ?string $schema = 'shared') {
$this->schema = $schema;
$this->connection = strtoupper(string: $connection);
}
/**
* Executa dentro de transação
*/
public function transaction(callable $callback): mixed {
DBManager::beginTransaction(connectionName: $this->connection, schema: $this->schema);
try {
$result = $callback($this);
DBManager::commit(connectionName: $this->connection, schema: $this->schema);
return $result;
} catch (Throwable $e) {
DBManager::rollback(connectionName: $this->connection, schema: $this->schema);
throw $e;
}
}
/**
* Executa query sem retorno
*/
public function execute(string $sql, array $params = []): bool {
return DBManager::execute(
sql: $sql,
params: $params,
connectionName: $this->connection,
schema: $this->schema
);
}
/**
* Retorna um único registro
*/
public function fetchOne(string $sql, array $params = []): ?array {
return DBManager::fetchOne(
sql: $sql,
params: $params,
connectionName: $this->connection,
schema: $this->schema
);
}
/**
* Retorna múltiplos registros
*/
public function fetchAll(string $sql, array $params = []): array {
return DBManager::fetchAll(
sql: $sql,
params: $params,
connectionName: $this->connection,
schema: $this->schema
);
}
/**
* Último ID inserido (via PDO interno do driver)
*/
public function lastInsertId(): string {
return DBManager::lastInsertId(
connectionName: $this->connection,
schema: $this->schema
);
}
}