solophp/base-repository

Base repository pattern implementation for PHP applications

Maintainers

Package info

github.com/SoloPHP/Base-Repository

pkg:composer/solophp/base-repository

Statistics

Installs: 53

Dependents: 0

Suggesters: 0

Stars: 0

Open Issues: 0

v2.3.0 2026-03-07 08:01 UTC

This package is auto-updated.

Last update: 2026-03-07 08:05:39 UTC


README

Lightweight PHP repository pattern with built-in soft delete, eager loading, and rich criteria syntax.

Latest Version PHP Version License

Features

  • Soft delete with restore/force delete
  • Eager loading (BelongsTo, HasOne, HasMany, BelongsToMany)
  • Rich criteria syntax with operators and relation filters
  • Built-in aggregations (count, sum, avg, min, max)
  • Transaction helpers with row locking (SELECT ... FOR UPDATE)
  • Auto-detect custom IDs (UUID, prefixed)

Installation

composer require solophp/base-repository

Requirements: PHP 8.3+, Doctrine DBAL ^4.3

Quick Example

class UserRepository extends BaseRepository
{
    protected ?string $deletedAtColumn = 'deleted_at';

    public function __construct(Connection $connection)
    {
        parent::__construct($connection, User::class, 'users');
    }
}

// Usage
$users = $repo->findBy(['status' => 'active'], ['created_at' => 'DESC'], 20, 1);
$repo->delete($id);      // Soft delete
$repo->restore($id);     // Restore

Documentation

📖 Full Documentation

License

MIT