solophp/base-repository

Base repository pattern implementation for PHP applications

Installs: 48

Dependents: 0

Suggesters: 0

Security: 0

Stars: 0

Watchers: 0

Forks: 0

Open Issues: 0

pkg:composer/solophp/base-repository

v2.1.0 2026-01-15 12:11 UTC

This package is auto-updated.

Last update: 2026-01-15 12:12:24 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
  • 🆔 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