Blog de Notícias

O Que É Laravel? Porque Usá-Lo?

O Que É Laravel? Porque Usá-Lo?

O Que É Laravel? Porque Usá-Lo?

O Que É Laravel? Porque Usá-Lo?

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.

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”.

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.

Mas, Porque Devo Usar Laravel? O Que Torna Ele Tão Bom Assim?

Ok! Já sabemos que ele é o framework mais badalado da atualidade, para muitos, isso já é um baita argumento para começar a utiliza-lo, para outros, nem tanto… Sendo assim, vou apresentar alguns pontos:

Composer

O Laravel utiliza o Composer para gerenciar suas dependências, algo que praticamente toda aplicação PHP moderna faz. O Composer é um incrível gerenciador de dependências, uma ferramenta que permite gerenciar, de forma fácil, os pacotes de terceiros da sua aplicação. (Já estou escrevendo um post pra falar sobre o 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

Até na documentação, o Laravel se destaca! Ela é bastante intuitiva e você consegue encontrar de forma fácil praticamente tudo que precisa saber para começar e se aprofundar em todos os recursos disponíveis pelo framework.

http://laravel.com/docs

Sistema de rotas

Com o Laravel, podemos trabalhar facilmente com o conceito de rotas. De forma bem simplória, as rotas fazem o mapeamento da URL digitada no navegador para alguma ação dentro da sua aplicação.

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 Blade é o compilador de templates do Laravel (template engine). A diferença dele para outros templates é a sua flexibilidade, o Blade não restringe o uso de PHP puro misturado a syntaxe do template. Os arquivos blade devem utilizar a extensão .blade.php .

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:



Exemplo de arquivo Blade

@yield('conteudo')

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

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



@extends('master')

@section('conteudo')
    

O conteúdo do nosso dashboard vem aqui!

@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

Eloquent é o ORM padrão do Laravel, ele aplica o Design Patter ActiveRecordonde cada tabela de banco de dados é representada no código através de uma classe “Model” que é usado para interagir com essa tabela. Os Models permitem a consulta de dados em suas tabelas, bem como, operações de insert,update e delete.

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
 

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

Ok, você conheceu o Eloquent e mesmo assim não quer trabalhar com tal nível de abstração? Talvez o QueryBuilder seja uma boa pra você.

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

O Artisan é uma interface de linha de comando que fornece vários comandos para facilitar o desenvolvimento da aplicação. Para visualizar todos os comandos disponíveis basta digitar no terminal:


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.)