active-record
active-record copied to clipboard
Implement `RepositoryInterface` and `RepositoryTrait`
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;
}
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