Skip to content
This repository has been archived by the owner on Jun 21, 2022. It is now read-only.

Commit

Permalink
Merge branch 'release/3.0.0'
Browse files Browse the repository at this point in the history
  • Loading branch information
Diego Hernandes committed Sep 16, 2016
2 parents 2c1bf5a + dbcf29e commit 8f09a43
Showing 1 changed file with 7 additions and 7 deletions.
14 changes: 7 additions & 7 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,21 +7,21 @@

## O que é Warehouse V2?

Warehouse v2 é um pacote um pouco átipico, já que você pode usa-lo sem precisar baixar ele. Ele se classificaria melhor como uma demonstração pronta para o uso..
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, básicamente 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* ?

Básicamente é 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 nao retornam objetos complexos ou que possuam alguma dependencia, 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.
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 cojitem fazer. E trocar de banco de dados no Laravel não é uma tarefa tão complexa, graças ao Eloquent.
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 nao retorna objetos planos e sim objetos Eloquent e Collections.
> 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.

Expand All @@ -45,7 +45,7 @@ No arquivo `config/app.php` adcione o service provider `Artesaos\Warehouse\Wareh
## Como usar

Warehouse v2 é um pacote base, ele implementa o básico sem nenhuma regra de negocio definida.
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
Expand Down Expand Up @@ -88,11 +88,11 @@ Esta classe implementa o contrato `BaseRepository`, que possui três assinaturas
public function lists($column, $key = null);
```

Já na implementação, `BaseRepository` disponibiliza dois metodos protegidos `newQuery()` e `doQuery($query = null, $take = 15, $paginate = true)`. Eles são amplamente usados nos repositórios.
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](https://github.com/laravel/framework/blob/5.1/src/Illuminate/Database/Eloquent/Builder.php) do eloquent, a partir da propriedade `modelClass`.
*newQuery* retorna um objeto [QueryBuilder](https://github.com/laravel/framework/blob/5.1/src/Illuminate/Database/Eloquent/Builder.php) do eloquent, à partir da propriedade `modelClass`.

```php
protected function newQuery()
Expand Down

0 comments on commit 8f09a43

Please # to comment.