29 lines
858 B
PHP
29 lines
858 B
PHP
<?php
|
|
namespace ProVM\Common\Define;
|
|
|
|
use PDO;
|
|
use Psr\Log\LoggerInterface;
|
|
|
|
interface Repository
|
|
{
|
|
public function getConnection(): PDO;
|
|
public function getTable(): string;
|
|
public function getLogger(): LoggerInterface;
|
|
|
|
public function setConnection(PDO $pdo): Repository;
|
|
public function setTable(string $table): Repository;
|
|
public function setLogger(LoggerInterface $logger): Repository;
|
|
|
|
public function isInstalled(): bool;
|
|
public function install();
|
|
public function resetIndex(): void;
|
|
|
|
public function create(array $data): Model;
|
|
public function save(Model &$model): void;
|
|
public function fetchAll(): array;
|
|
public function fetchById(int $id): Model;
|
|
public function update(Model $model, Model $old): void;
|
|
public function optimize(): void;
|
|
public function delete(Model $model): void;
|
|
}
|