PHPackages                             gilsonsouza/lara-polices - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Authentication &amp; Authorization](/categories/authentication)
4. /
5. gilsonsouza/lara-polices

ActiveLibrary[Authentication &amp; Authorization](/categories/authentication)

gilsonsouza/lara-polices
========================

Laravel Request Polices

v1.2(9y ago)04141MITPHP

Since Dec 22Pushed 9y ago1 watchersCompare

[ Source](https://github.com/gilsonsouzah/larapolices)[ Packagist](https://packagist.org/packages/gilsonsouza/lara-polices)[ RSS](/packages/gilsonsouza-lara-polices/feed)WikiDiscussions master Synced 2mo ago

READMEChangelogDependencies (2)Versions (5)Used By (0)

1. Dependência
--------------

[](#1-dependência)

Usando o [composer](https://getcomposer.org/), execute o comando a seguir para instalar automaticamente `composer.json`:

```
composer require gilsonsouza/lara-polices
```

ou manualmente no seu arquivo `composer.json`

```
{
    "require": {
        "composer require gilsonsouza/lara-polices": "^1.0"
    }
}
```

2. Middlewares
--------------

[](#2-middlewares)

Para utilizá-los é necessário registrá-los no seu arquivo app/Http/Kernel.php.

```
 protected $middleware = [
        // other middleware ommited
    	\LaraPolices\Middlewares\PolicesMiddleware::class,
 ];
```

3. Provider (opcional)
----------------------

[](#3-provider-opcional)

Para configurar as mensagens de erro e a pasta onde ficará as Polices de seu projeto é necessário adicionar o aquivo `polices.php` a pasta config do seu projeto. Para isso adicione o seguinte código no fim da seção `providers`

```
// file START ommited
    'providers' => [
        // other pro````viders ommited
        \LaraPolices\Providers\PolicesServiceProvider::class,
    ],
// file END ommited
```

### 3.1 Publicando o arquivo de configuração (somente se tiver feito o passo 3)

[](#31-publicando-o-arquivo-de-configuração-somente-se-tiver-feito-o-passo-3)

Para publicar o arquivo de configuração padrão que acompanham o package, execute o seguinte comando:

```
php artisan vendor:publish  --provider="LaraPolices\Providers\PolicesServiceProvider"
```

4 Configurações (somente se tiver feito o passo 3, e 3.1)
---------------------------------------------------------

[](#4-configurações-somente-se-tiver-feito-o-passo-3-e-31)

Configure o arquivo com as mensagens e paths necessários.

`config/polices.php`

5 Criando uma Police
--------------------

[](#5-criando-uma-police)

Na criação de uma police, adicione `use LaraPolices\Polices\AbstractPolice;` como uma dependência de sua classe que deve extende-la. As definições de methodos e validações de uma police são bem abertos, apenas algumas convenções devem ser observadas e respeitadas:

```
O mesmo nome de classe usado no Controller deverá ser o nome da classe da Police.

  Ex.: "PostsController" => "PostsPolice"

```

```
As rotas cobertas pelo middleware de polices devem apontar sempre para um {Controller@action} e não possuir um Closure. Rotas com
 closures na definição não são cobertas pelas Polices.

  Coberto: "Route::get('posts', 'PostsController@index')" => "PostsPolice@index"
  Não Coberto: "Route::get('posts', function () {
    return [];
  )" => "-"

```

```
Os métodos de validação da Police devem ser os mesmos do controller no qual será aplicada. Tais metodos recebem `$request`
 como parâmetro para captura de dados e validações

  Ex.: "PostsController@show" => "PostsPolice@show"

```

Para validação com dados do usuário, você poderá utilizar a variável `$this->user` para capturar o Authenticatable atual no Auth.

Exemplo de criação de uma police.

```
