O que é Laravel? Porque usá-lo?

Laravel é um framework de desenvolvimento rápido para PHP, livre e de código aberto. Cuja o principal objetivo é permitir que você trabalhe de forma estruturada e rápida.

Image for post
Image for post

Aproveitando o gancho do último post, onde falei um pouquinho sobre O que é framework? E porque você precisa de um? . Hoje, vou ceder o espaço para comentar sobre uma das minhas especialidades, o framework Laravel.

O Laravel é um framework de desenvolvimento rápido para PHP, livre e de código aberto. Cuja o principal objetivo é permitir que você trabalhe de forma estruturada e rápida.

Gosta de código bonito? Quem utiliza Laravel também gosta! Como o próprio slogan diz: “O framework PHP para artesões da web”.

Image for post
Image for post

O Laravel tira a monotonia do desenvolvimento web. Ele fornece todas as ferramentas necessárias para que você possa começar programando o que for necessário, ele foi construído para ser simples e fácil de aprender.

O Laravel é sem sombras de dúvidas, um dos frameworks mais populares da atualidade (não somente no mundo PHP), possui uma equipe de desenvolvedores ativa e extremamente competente, além de ter uma gigantesca comunidade e bastante aceitação no mercado.

Com uma rápida pesquisa no Google Trends, podemos comprovar a crescente popularidade do Laravel.

Image for post
Image for post

Mas, porque devo usar Laravel? O que torna ele tão bom assim?

Composer

Para fazer a instalação, basta executar o comando no terminal:

composer create-project laravel/laravel

P.S(Vou detallhar a instação do Laravel (Windowns, Linux e Mac) nos próximos artigos).

Documentação

http://laravel.com/docs

Sistema de rotas

Route::get('hello', function () {
return 'Hello World';
});

Podemos registrar rotas que respondem a qualquer verbo HTTP:

Route::get($uri, $callback);
Route::post($uri, $callback);
Route::put($uri, $callback);
Route::patch($uri, $callback);
Route::delete($uri, $callback);
Route::options($uri, $callback);

Além disso, o sistema de roteamento nos permite trabalhar com:

  • Parâmetros de rotas(Opcionais ou não);
//Exemplo de rota com parâmetro opcional.
Route::get('welcome/{name?}', function ($name = 'visitante') {
return "Seja bem vindo $name!";
});
  • Restrições de parâmetros com expressões regulares
Route::get('welcome/{name}', function ($name) {
//
})->where('name', '[A-Za-z]+');
  • Agrupamento de rotas (Prefixo, Subdomínio, Namespace, Middleware);

//Rotas agrupadas por subdomínio
Route::group(['domain' => '{account}.myapp.com'], function () {
Route::get('user/{id}', function ($account, $id) {
//
});
});

Além de recursos mais avançados. Para mais detalhes consulte a documentação.

Blade — Sistema de templates

O grande objetivo do Blade é reduzir a quantidade de código PHP inserido no meio do HTML e aumentar o reúso, para isso, ele disponibiliza uma serie de diretivas que são inseridas junto ao código HTML de acordo com a necessidade da página.

Os dois principais benefícios do uso do Blade são a herança e as seções, permitindo trabalhar facilmente com o conceito de master page. Vejamos o código baixo:

<!-- master.blade.php -->

<html>
<head>
<title>Exemplo de arquivo Blade</title>
</head>
<body>
<div class="container">
@yield('conteudo')
</div>
</body>
</html>

Esse código representa a estrutura da nossa master page.

Agora vamos implementar página dashboard.blade.php que irá herdar esse layout.

<!-- dashboard.blade.php -->

@extends('master')

@section('conteudo')
<p>O conteúdo do nosso dashboard vem aqui!</p>
@endsection

Nessa página estamos herdando toda a estrutura da nossa master page utilizando a diretiva @extends , além de injetar o conteúdo específico da página através da diretiva @section .

Para renderizar esse exemplo fictício, poderíamos criar a seguinte rota:

Route::get('dashboard', function () {
return view('dashboard');
});

Consulte a documentação para obter mais detalhes sobre o Blade.

Eloquent e QueryBuilder

Qual a vantagem disso? Você consegue implementar sua aplicação sem ter que escrever SQL puro misturado ao código.

Vamos ver um exemplo bem simples:

  • Supondo que temos uma tabela com o nome ‘Post’ em nossa base de dados, a primeira coisa a se fazer é criar um Model Eloquent pra essa tabela
<?php

namespace App;

use Illuminate\Database\Eloquent\Model;

class Post extends Model
{
/**
* A tabela que será associada ao Model.
*
* @var string
*/
protected $table = 'post';
}

Para fazer uma listagem de todos os registros dessa tabela, basta invocar o método all() que faz parte do Eloquent, veja:

Route::get('posts', function () {
// Corresponde a "SELECT * FROM post"
return Post::all();
});

Obviamente, o Eloquent disponibiliza uma serie de métodos além do all(), dentre vários outros recursos (relacionamentos, collections, mutators e etc…) para conhecer todos eles, recomendo mais uma vez, recorrer a documentação.

QueryBuilder

Como o próprio nome já diz, o QueryBuilder é um construtor de querys, ele pode ser usado para executar a maioria das operações de banco de dados.

Vamos fazer um refactory do exemplo anterior utilizando o QueryBuilder:

Use Illuminate\Support\Facades\DB;Route::get('posts', function () {
// Corresponde a "SELECT * FROM post"
return DB::table('post')->get();
});

Agora, o mesmo exemplo utilizando SQL puro:

Use Illuminate\Support\Facades\DB;Route::get('posts', function () {
return DB::select('SELECT * FROM post');
});

Para mais detalhes, documentação!

Artisan Console

php artisan list

Além de todos os comandos disponíveis, você pode criar seus próprios comandos.

P.S(Para fins didáticos, foram omitidos alguns trechos de código em quase todos os exemplos.)

Minhas considerações

Quem me conhece sabe da minha admiração por esse framework, a final de contas, ele é meu parceiro no desenvolvimento web desde 2014… Já até recebi o apelido de “lara-man” rsrs…

Vale ressaltar que cada framework tem suas particularidades e propósitos, dependendo da necessidade, talvez o Laravel não seja a melhor opção. Mas, se você está em busca de um novo framework PHP, porque não dar uma chance ao Laravel?

Desenvolvendo com Paixão

O desenvolvimento de software e pessoal são habilidades que devem ser realizadas com Paixão!

João Roberto da Paixão

Written by

Eterno aprendiz que compartilha aquilo que aprende. Apaixonado por tecnologia, desenvolvimento pessoal e investimentos. Pai de família, um cara tranquilo =) !

Desenvolvendo com Paixão

Um eterno aprendiz que acredita fielmente que o desenvolvimento de software e pessoal são habilidades que devem ser realizadas com Paixão!

João Roberto da Paixão

Written by

Eterno aprendiz que compartilha aquilo que aprende. Apaixonado por tecnologia, desenvolvimento pessoal e investimentos. Pai de família, um cara tranquilo =) !

Desenvolvendo com Paixão

Um eterno aprendiz que acredita fielmente que o desenvolvimento de software e pessoal são habilidades que devem ser realizadas com Paixão!

Medium is an open platform where 170 million readers come to find insightful and dynamic thinking. Here, expert and undiscovered voices alike dive into the heart of any topic and bring new ideas to the surface. Learn more

Follow the writers, publications, and topics that matter to you, and you’ll see them on your homepage and in your inbox. Explore

If you have a story to tell, knowledge to share, or a perspective to offer — welcome home. It’s easy and free to post your thinking on any topic. Write on Medium

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store