Interfaces
This commit is contained in:
20
src/Concept/Database.php
Normal file
20
src/Concept/Database.php
Normal file
@ -0,0 +1,20 @@
|
||||
<?php
|
||||
namespace ProVM\Concept;
|
||||
|
||||
use PDO;
|
||||
|
||||
interface Database
|
||||
{
|
||||
public function setHost(string $host): Database;
|
||||
public function getHost(): string;
|
||||
public function setPort(int $port): Database;
|
||||
public function getPort(): int;
|
||||
public function setName(string $name): Database;
|
||||
public function getName(): string;
|
||||
public function setUsername(string $username): Database;
|
||||
public function getUsername(): string;
|
||||
public function setPassword(string $password): Database;
|
||||
public function getPassword(): string;
|
||||
public function needsUser(): bool;
|
||||
public function getDSN(): string;
|
||||
}
|
18
src/Concept/Database/Connection.php
Normal file
18
src/Concept/Database/Connection.php
Normal file
@ -0,0 +1,18 @@
|
||||
<?php
|
||||
namespace ProVM\Concept\Database;
|
||||
|
||||
use PDO;
|
||||
use ProVM\Concept\Database;
|
||||
|
||||
interface Connection
|
||||
{
|
||||
public function setDatabase(Database $database): Connection;
|
||||
public function getDatabase(): Database;
|
||||
public function connect(): Connection;
|
||||
public function setPDO(PDO $pdo): Connection;
|
||||
public function getPDO(): PDO;
|
||||
public function query(string $query): ResultSet;
|
||||
public function prepare(string $query): ResultSet;
|
||||
public function execute(string $query, array $values): ResultSet;
|
||||
public function transaction(): Transaction;
|
||||
}
|
13
src/Concept/Database/ResultSet.php
Normal file
13
src/Concept/Database/ResultSet.php
Normal file
@ -0,0 +1,13 @@
|
||||
<?php
|
||||
namespace ProVM\Concept\Database;
|
||||
|
||||
use PDOStatement;
|
||||
|
||||
interface ResultSet
|
||||
{
|
||||
public function __construct(PDOStatement $statement);
|
||||
public function execute(array $values): ResultSet;
|
||||
public function getAsArray(): array;
|
||||
public function getAsObject(): array;
|
||||
public function getFirst(): mixed;
|
||||
}
|
12
src/Concept/Database/Transaction.php
Normal file
12
src/Concept/Database/Transaction.php
Normal file
@ -0,0 +1,12 @@
|
||||
<?php
|
||||
namespace ProVM\Concept\Database;
|
||||
|
||||
interface Transaction
|
||||
{
|
||||
public function begin(): Transaction;
|
||||
public function query(string $query): ResultSet;
|
||||
public function prepare(string $query): ResultSet;
|
||||
public function execute(string $query, array $values): ResultSet;
|
||||
public function commit(): void;
|
||||
public function rollBack(): void;
|
||||
}
|
Reference in New Issue
Block a user