active-record icon indicating copy to clipboard operation
active-record copied to clipboard

Implement `RepositoryInterface` and `RepositoryTrait`

Open Tigrov opened this issue 1 year ago • 1 comments

interface RepositoryInterface
{
    public static function find(array|string $condition = []): ActiveQueryInterface;
    public static function findBySql(string $sql, array $params = []): ActiveQueryInterface;

    public static function findOne(array|string $condition = []): ActiveRecordInterface|null;
    public static function findAll(array|string $condition = []): array;

    public static function deleteAll(array|string $condition = [], array $params = []): int;
    public static function updateAll(array $attributes, array|string $condition = [], array $params = []): int;
    public static function updateAllCounters(array $counters, array|string $condition = '', array $params = []): int;
}

interface  ConnectionProviderInterface
{
    public static function getDb(): ConnectionInterface;
    public static function setDb(ConnectionInterface $db): void;
}

Tigrov avatar May 24 '24 04:05 Tigrov

ConnectionProviderInterface could be also bound to the AR factory and have non-static methods Also I think there're no need to add interface for the ConnectionProvider, it could be implemented as a single file with get/set methods

xepozz avatar Jun 09 '24 11:06 xepozz