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.
Publicado em
Arquitetura de SoftwareExplorar por tema