Desenvolvimento Laravel: Laravel 5.5 Chegou! Confira as novidades e como instalar.

Nova versão Laravel 5.5

Conheças as novidades e como instalar o novo Laravel 5.5

Iniciarei hoje uma série nova baseada em alguns estudos que estou fazendo sobre desenvolvimento Laravel. A ideia desta série e trazer novidades e aprofundar os conhecimentos sobre este Framework PHP que já tomou destaque junto ao mercado. Inicio hoje com a chegada do Laravel 5.5. Confesso até que ele foi um grande impulsionador para eu querer começar a série.

Bem, não poderia começar com um novo lançamento sem falar de suas novidades. Por isso, abaixo, deixarei as novidades que achei mais interessantes e depois utilizarei a minha plataforma de Hospedagem Cloud aqui da DialHost para realizar uma instalação limpa do Framework.

Tela Whoops

A tela de Whoops do Laravel é sem dúvida uma ajuda e tanto no momento que estamos desenvolvendo um novo projeto. Ela é o debugger do Framework que nos mostra quando algo não está certo com a nossa programação.

Ela em si não é nova, mas sua apresentação está mais interativa mostrando a parte do seu código que está ocorrendo o erro. Como podemos ver ela apresentará o erro a esquerda e o código com a linha destacada a direita. Muito prático!

Whoops Laravel 5.5

Tela de Whoops do Laravel 5.5

Validação de requisições

Nas versões anteriores do Laravel, uma validação de dados deveria ser feita através da Controller. Agora é possível que a própria Request execute a validação e retorne a mensagem. E ao fim da validação a mesma retornará apenas os dados que foram tratados por esta validação. Para deixar mais claro vou deixar um exemplo de como era e como ficou esta chamada para salvamento de um produto.

Antes (Laravel <5.5)

 

Agora

 

Retorno

 

Presets de FrontEnd

Esta é para os Frontenders de plantão. Agora o Laravel deixa disponível alguns Presets já configurados para você trabalhar com Vue, React e Bootstrap. Mas se você não quiser também pode utilizar nenhum Preset. Você pode utilizar e configurar estes Presets através do “php artisan preset Vue” por exemplo.

API Resources

Para não alongar demais selecionei um último item que achei bem útil. Resources Classes agora permitem que nós transformemos nossas Eloquent Models para estruturas em JSON. Isto facilita e traz consistência para a liberação de uma API para o público.

Claro que este novo lançamento não se limita a estas novidades. Mas para os mais aficionados pelo lançamento deixo uma integra, em inglês, sobre todas as novidades que esta versão trouxe. Laravel 5.5 LTS is Now Released

Instalando o Laravel 5.5

Configurando o acesso SSH

A instalação do Laravel 5.5 é muito simples já que ele conta com o auxilio do composer. Para começar configurei minha hospedagem cloud. Escolhi ela pois me permite ter o acesso SSH da minha instância, existe o isolamento de recurso que permite o crescimento do projeto e consigo a praticidade do painel de controle.

No painel eu consigo ver meu IP de acesso e caso não tenha ainda, solicitar a senha para acesso SSH através do HelpDesk.

Painel de hospedagem Cloud

Painel de controle da hospedagem Cloud

Com todas as configurações na mão, agora é só acessar o SSH. No caso estou utilizando o programa MRemoteNG para windows.

Instalação do composer

O Primeiro passo será instalar o Composer:

 

Após instalado comece a rodar o serviço:

 

Instalação do Laravel

Agora que o Composer está instalado e configurado vamos ao Laravel… Acesse o diretório aonde você deseja criar o projeto novo (meu_projeto) e rode o comando abaixo:

 

Este procedimento poderá demorar um pouco. (Comigo foi algo em torno de 3 min). Mas se tudo der certo você já poderá acessar o Laravel no diretório “meu_projeto” em que você pediu para instalar.

Após instalado o sistema, no diretório do projeto, você precisa configurar seu arquivo de ambiente. O Laravel fornece um template padrão chamado .env.example. Para começar podemos apenas renomear este arquivo para .env utilizando o código abaixo:

 

OBS.: Caso você não faça o procedimento acima e tentar acessar seu projeto pelo navegador, você verá a seguinte mensagem

Laravel 5.5 something went wrong

Tela de erro do Laravel 5.5 sem a exibição de debugs

Por fim é preciso rodar o comando abaixo para criar a chave da sua aplicação. Ela é utilizada para garantir a segurança interna do Laravel e o Framework só funcionará com esta chave setada em seu .env. Para criá-la basta roda o comando abaixo.

 

OBS.: Se você acessar sua nova instalação assim que você instalar sua tela apresentará o erro abaixo.

Whoops Laravel 5.5

Erro por não geração de “encryption Key”

Depois de tudo instalado você verá a tela de bem vindo do Laravel e já pode começar a implementar seu projeto.

O Laravel é um Framework bem completo e permite fazer muita coisa com simplicidade no código. Na verdade este é o intuito deles… Ter um código limpo bonito e simples de entender.

Formulário de contato com Laravel

Laravel

Laravel

Olá, pessoal! Hoje vou falar sobre como montar, de forma fácil, um formulário de contato em seu site usando o Laravel 4.1.

Em meu site, precisei colocar um formulário de contato para que as pessoas que acessam o site possam entrar em contato, seja para solicitar os serviços, ou para dar opinião, criticar… Enfim, ter uma forma de entrarem em contato comigo.

A princípio, tentei fazer o envio usando SMTP autenticado. Localmente, funcionou perfeitamente, mas quando enviei para meu servidor remoto, não funcionou (o Server bloqueou o envio por segurança. Ainda estou resolvendo isso). Mas no servidor remoto, consegui fazer o envio usando como tipo de envio a função mail() do PHP.

Para começar, criei duas rotas, uma para o método GET e outra para o método POST:

1 Route::get('contato', array('as' => 'contato', 'uses' =>'HomeController@contato'));
2 Route::post('contato', 'HomeController@postContato');

Agora, vamos criar a view responsável pelo formulário:

1 /app/views/pages/contato.blade.php
2 {{ Form::open(array('action' => 'HomeController@contato', 'role' => 'form')) }}
3 {{ Form::label('nome', 'Nome', array('class'=>'control-label')) }}
4  {{ Form::text('nome', null, array('placeholder'=>'Seu nome...', 'class'=>'form-control')) }}
5 {{ Form::label('email', 'E-mail', array('class'=>'control-label')) }}
6  {{ Form::text('email', null, array('placeholder'=>'Seu e-mail...', 'class'=>'form-control')) }}
7 {{ Form::submit('Enviar Mensagem', array('class' => 'btn btn-default')) }}{{ Form::close() }}

As classes de formatação que estou usando no exemplo são padrão do Twitter bootstrap, que uso com frequência pela facilidade de uso.

Em meu controller HomeController, criei dois métodos, um para carregar a view e outro para o método POST, para enviar o e-mail.

1 public function contato() {
2  return View::make('pages.contato');
3 }
4 public function postContato() {
5 $rules = array( 'nome' => 'required', 'email' => 'required|email', 'texto' => 'required' );
6 $validation = Validator::make(Input::all(), $rules);
7 $data = array();
8  $data['nome'] = Input::get("nome");
9  $data['email'] = Input::get("email");
10  $data['texto'] = Input::get("texto");
11 if($validation->passes()) {
12  Mail::send('emails.contato', $data, function($message) {
13  $message->from(Input::get('email'), Input::get('nome'));
14  $message->to('contato@billjr.com.br') ->subject('Contato Bill Jr.');
15  });
16 return Redirect::to('contato') ->with('message', 'Mensagem enviada com sucesso!');
17  }
18 return Redirect::to('contato')
19  ->withInput()
20  ->withErrors($validation)
21  ->with('message', 'Erro! Preencha todos os campos corretamente.');
22 }

Explicarei agora o que fiz no método postContato():

  • Criei a variável $regras para validar meu formulário;
  • Criei a variável $validation validando meu formulário com o Validator::make(), e usando o Input::all() para trazer todos campos postados pelo formulário;
  • Usando a condição if, verifico se a validação “passou” (if($validation->passes()));
  • Na variável $data, criei um array vazio, depois atribuí o valor de cada campo postado pelo formulário, para facilitar;
  • A seguir, uso o método de envio de email padrão do Laravel, com Mail::send(), e passando os parâmetos from, to e subject.
  • Em $message->from, informo email e nome do contato
  • Em $message->to, informo meu email de contato
  • Em $message->subject, o assunto do meu email de contato

 

Dentro da validação (if($validation->passes)), uso o return Redirect::to() para redirecionar para a página de contato, caso o e-mail tenha sido enviado com sucesso, com uma mensagem de “Sucesso!”.

Após fechar o bloco de código da validação, coloco uma validação com a mensagem de erro, caso o e-mail não tenha sido enviado com sucesso. A mensagem de sucesso exibo dentro do meu arquivo de layout padrão do site, desta forma:

1 @if(Session::has('message'))
2  {{ Session::get('message') }}
3 @endif

Bom, galera, é isso! Desta forma você pode ter facilmente um formulário de contato em seu site, ou adaptar o script para suas necessidades.

Caso queiram saber mais sobre como enviar e-mails com Laravel, acessem a documentação oficial em: e-mail com Laravel

Até o próximo artigo!

—–

Artigo de Oberaldo Büll Junior, publicado originalmente no iMasters.

DialHost
DialHost

Contamos com nosso DataCenter no Brasil de alta qualidade, estabilidade e confiança para hospedar seu site. Utilize poderosas ferramentas para otimizar o uso do seu serviço e seja sempre atendido de forma rápida e clara pelo nosso atendimento 24h.