Repository Pattern com Eloquent Capsule standalone
Arquitetura de Software

Repository Pattern com Eloquent Capsule standalone

9 min de leitura

Usar Eloquent sem o Laravel é possível e prático. O Capsule standalone traz o Query Builder poderoso sem Models ativos e sem acoplamento ao framework.

Eloquent sem Laravel

O Illuminate Database (Eloquent) pode ser usado como um standalone via Capsule — sem precisar do framework Laravel. Você tem acesso ao Query Builder poderoso sem Active Record, sem observers, sem model events que disparam magicamente.

Por que evitar Active Record

Active Record mistura lógica de banco com lógica de domínio. O Repository Pattern separa as duas responsabilidades: o Repository conhece SQL, a Entidade conhece o domínio. Isso facilita testes — você pode mockar o Repository sem precisar de banco.

BaseRepository

Um BaseRepository compartilhado encapsula as operações comuns e expõe o Query Builder protegido. Cada Repository concreto herda e adiciona apenas os métodos específicos do seu agregado:

abstract class BaseRepository {
    protected function table(): Builder {
        return DB::table($this->tableName);
    }
}

Entidades puras

Entidades são POPOs — Plain Old PHP Objects. Elas não sabem nada sobre banco de dados. O método estático fromDatabase() hidrata a entidade a partir de um array do banco, e toDatabaseArray() serializa para inserção.