Unlimited Plugins, WordPress themes, videos & courses! Unlimited asset downloads! From $16.50/m
Advertisement
  1. Code
  2. Laravel 5

Novos Recursos no Laravel 5.2

Difficulty:AdvancedLength:ShortLanguages:

Portuguese (Português) translation by Erick Patrick (you can also view the original English article)

Nesse artigo, veremos os novos recursos do Laravel 5.2 e as descreveremos uma a uma. Os novos recursos são:

  • vinculação implícita de modelos a rotas
  • validação de vetor de formulário
  • mediador de limitação de uso de API
  • grupos de mediadore
  • esqueleto de autenticação
  • múltiplos drivers de proteção de autenticação

Múltiplos Drivers de Proteção de Autenticação

Esse recurso nos ajuda, principalmente quando precisamos de autenticação da Doctrine ORM com vários provedores. Em alguns projetos, preferimos ter autenticação separada para administradores e usuários. Esse recurso ajuda a alcançar isso. Vejamos um exemplo em config/auth.php:

Ao usar Auth::attempt([...]), Laravel invocará a proteção padrão. Se quisermos usar uma proteção específica, podemos usar assim Auth::guard('admin').

Para autenticação num grupo de rota com uma proteção específica, podemos chamar só o nome dela:

Algumas vezes, ao invés de um login simples no app, queremos que o usuário anexem um api_token ao texto de consulta e usamos isso para autenticar a requisição. O TokenGuard ajuda nisso.

Se quisermos autenticação com token, primeiro precisamos adicionar um campo único de tamanho 60 chamado api_token à tabela do modelo selecionado (entidade no Doctrine) Agora, podemos usar a proteção api no app.

Vinculação Implícita de Modelos a Rotas

Um novo recurso do Laravel 5.2 que é bem prática é a vinculação de modelo a rota. Podemos vincular um modelo à nossa rota, antes teríamos de fazê-lo manualmente:

Ou podemos faer algo assim:

Laravel 5.2 facilita ainda mais. Com apenas um parâmetro na closure da rota, e será tratada automaticamente como vinculação de modelo à rota:

Agora é mais fácil vincular um modelo à nossa rota.

Por padrão, Laravel usar a coluna id do modelo. Mas se o mapeamento for diferente, podemos mudar o modelo assim:

Eloquent implementa o contrato Illuminate\Contracts\Routing\UrlRoutable, assim, podemos sobrescrever getRouteKeyName(). Ele define qual coluna deve ser usada a para a URL.

Grupos de Mediador

Como vemos na seção acima, podemos criar uma proteção diferente para usuários e admins. Nesse caso, se quisermos atribuir vários mediadores a um grupo de rotas ou ao grupo de rota de admin, Laravel 5.2 permite-nos criar um atalho.

Para definir o grupo de mediador, temos de modificar kernel.php na pasta https:

E podemos usá-la, facilmente, em nosso grupo de rota.

Mediador de Limitação de Uso de API

Se usamos a API de uma aplicação como GitHub, para requisições com Autenticação Básica ou OAuth, podemos realizar 5000 requisições por hora. Chamaos isso de limitação de uso. Se queremos algo assim no nosso app, podemos usar o novo recurso do Laravel 5.2. Laravel 5.2 adiciona o mediador throttle que lidará com a limitação de uso. Por exemplo, se temos algo como:

Por padrão, throttle permitirá 60 requisições por minuto no kernel.php:

Podemos alterá-lo como quiser ou ainda customizá-lo para uma rota específica:

Esqueleto de Autenticação

Laravel 5.2 provê uma forma rápida de gerar tudo que é preciso para autenticação no app, com isso:

Usando esse comando na nova aplicação criará as visões de registro e login, assim como rotas para todas as autenticações. Nosso arquivo de rota parece com:

O método Route:auth() é um atalho para definir as rotas a seguir:

O HomeController também será gerado e será responsável pelas requisições de login para o painel da aplicação. Mas podemos customizar ou remover o controlador de acordo com a necessidade da aplicação.

Validação de Vetor de Formulário

Uma coisa interessante com que trabalhos é um vetor de dados de formulários HTML. Se usarmos algo nos colchetes, o vetor final será associativo, caso contrário, será numérico:

O resultado de print_r($_POST) será:

Isso ajudará a simplificar o processo de validação e trabalho com formulários. Agora, vejamos a validação para nossos campos no Laravel 5.2:

Talvez tenhamos percebido que a forma da validação é name.*.last, com um asterisco no meio, indicando que podemos adicionar qualquer chave do vetor ou algo que precisemos.

Conclusão

Larvel 5.2 foi um lançamento modesto que nos permite trabalhar melhor e mais rápido. Como vimos, várias dos recuros são fáceis de aprender.

Advertisement
Advertisement
Advertisement
Advertisement
Looking for something to help kick start your next project?
Envato Market has a range of items for sale to help get you started.