Download the PHP package artesaos/warehouse without Composer
On this page you can find all versions of the php package artesaos/warehouse. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.
Informations about the package warehouse
Artesãos Warehouse V2 - A simple and direct approach to repositories!
O que é Warehouse V2?
Warehouse v2 é um pacote um pouco atípico, já que você pode usá-lo sem precisar baixá-lo. Ele se classificaria melhor como uma demonstração pronta para o uso.
Muito se fala sobre o padrão de projeto Repository, basicamente ele é uma camada a mais entre sua aplicação e o banco de dados, no caso do Laravel sendo responsável direto por agir sobre seus models e queries.
O que é Repository Pattern ?
Basicamente é a camada onde você executa seus comandos no banco de dados.
Há muita filosofia por trás desse modelo. No seu modo mais puro os métodos de um repositório não retornam objetos complexos ou que possuam alguma dependência, retornam arrays ou objetos simples (StdClass). Isso por que um de seus objetivos é permitir a troca de um repositório que trabalha com MySQL por exemplo, por um que trabalhe com MongoDB.
O mundo real hoje
OK! Tudo muito lindo, no papel. Não são todos os projetos que precisam de uma abordagem assim, se você usa o Laravel, abrir mão do Eloquent não é algo que todos cogitem fazer. E trocar de banco de dados no Laravel não é uma tarefa tão complexa, graças ao Eloquent.
Devido a facilidade e praticidade que o Eloquent e Collections trazem, este pacote não retorna objetos planos e sim objetos Eloquent e Collections.
Muitos não sabem e outros se esquecem que outro objetivo de um repositório é organizar e centralizar suas consultas e até mesmo regras de negócio. Essa é a principal abordagem que o Warehouse V2 pretende suprir.
Instalando
Execute composer require artesaos/warehouse 2.x-dev
No arquivo config/app.php
adcione o service provider Artesaos\Warehouse\WarehouseServiceProvider
Este processo não é obrigatório. Você só precisa fazer isso caso esteja usando o Fractal.
Como usar
Warehouse v2 é um pacote base, ele implementa o básico sem nenhuma regra de negócio definida.
Há duas classes base: BaseRepository
e AbstractCrudRepository
BaseRepository
Esta classe implementa o contrato BaseRepository
, que possui três assinaturas:
Já na implementação, BaseRepository
disponibiliza dois métodos protegidos newQuery()
e doQuery($query = null, $take = 15, $paginate = true)
. Eles são amplamente usados nos repositórios.
newQuery
newQuery retorna um objeto QueryBuilder do eloquent, à partir da propriedade modelClass
.
Essa propriedade precisa ser definida em todos as classes repositório
doQuery
doQuery processa a query e retorna uma collection ou um objeto paginate, dependendo dos parametros passados
All versions of warehouse with dependencies
illuminate/database Version ~5
illuminate/support Version ~5
illuminate/pagination Version ~5
illuminate/contracts Version ~5
league/fractal Version ~0.14