Laravel #1: O Conceito

Posted by

Neste artigo, dou inicio a mais uma serie de artigos, desta vez, sobre a framework Laravel. Este artigo, vem no seguimento de um outro, onde explico o que são frameworks, em que momento usar, entre as suas vantagens e desvantagens.
O Laravel, é uma framework PHP, que tem o objectivo de tantas outras frameworks: ajudar a trabalhar de uma forma estruturada e rápida.

O que é o Laravel?

Com o slogan “Framework PHP para artesões da web”, tem a principal função de ajudar a manter uma estrutura de código limpa e simples, de forma a ajudar numa melhor fluidez e desempenho de quem a usa.

Fornecendo todas as ferramentas para iniciar um projecto, e também sendo bastante simples de aprender.

O Laravel é actualmente a framework mais popular, e conta com uma equipa dedicada ao projecto, sendo o mesmo “Open Source”.

A evolução

Criado por Taylor Otwell, em 2014, reescreveu a framework do zero, depois de em 2011 e 2012, terem sido disponibilizadas as versões 2 e 3. Estas duas versões, seriam os “rascunhos” das actuais versões da framework. Taylor, também reescreveu uma vasta e ampla gama de componentes, distribuídos via Composer.
Laravel, utiliza actualmente uma grande parte dos componentes do Symfony, como estrutura base.

Porque usar Laravel?

Existem duas características que tornam esta framework bastante poderosa. A primeira, obviamente, será o seu propósito, tal como já descrito acima. Fácil de aprender e implementar, torna-se muito pratico para qualquer um iniciar o seu projecto.
O Segundo ponto, é a sua comunidade. Esta comunidade, tal como a equipa que desenvolve a framework, são bastante activos. Podemos encontrar online, diversos tipos de problemas solucionados, alternativas, pacotes para utilizarmos no nosso projecto, totalmente feito para Laravel.

Um outro factor muito importante, é a sua documentação. Esta, está bem organizada, e com uma simples leitura pela mesma, somos capazes de entender o funcionamento da framework Laravel, de forma simples e pratica.

Na pratica, Laravel torna-se tão poderosos por diversas razões:

1 – Composer

O Composer, ajuda a organizar as dependências do projecto, algo usado no PHP moderno. Esta aplicação, ajudar a ter pacotes de terceiros no nosso projecto, de forma bastante organizada.

2 – Documentação

Tal como falado a acima, a documentação bem detalhada, dá aos utilizadores de Laravel, um maior e aprofundado conhecimento.

https://laravel.com/docs

3 – Sistema de Rotas

O sistema de rotas utilizadas pelo Laravel, é algo tão atractivo e de fácil manipulação, que torna a criação de endpoints bem mais simples que o normal.

Route::get('content', function () {
    return 'Olá Mundo!';
});

Outros exemplos de rotas:

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

É possível manipular de várias maneiras as rotas, usando parâmetros opcionais ou obrigatórios, restrições com expressões regulares, e também agrupamento de rotas. Mais uma vez, a documentação pode apresentar-vos praticamente todos os exemplos genéricos. No futuro, irei criar artigos que iram englobar rotas.

4 – Blade

O Blade, é um sistema de templates do Laravel (template engine). A flexibilidade do Blade, é que não restringe o uso de PHP puro. Os arquivos do Blade devem utilizar a extensão .blade.php.

O objectivo do uso deste sistema, é a redução de código PHP no meio do HTML, de forma a aumentar a possibilidade de usar o mesmo código dos Blades, em diversas partes do projecto.

Dentro das principais vantagens, estão o uso de heranças e secções, dando para trabalhar o conceito de master page, de forma pratica.

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

<html>
    <head>
         <title>A minha página</title>
    </head>
    <body>
        <div class="container">
            @yield('conteudo')
        </div>
    </body>
</html>

No exemplo abaixo, vamos herdar a master blade no nosso dashboard:

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

@extends('master')

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

De forma a renderizar o exemplo de cima, vamos usar um exemplo de rota:

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

5 – Eloquent e QueryBuilder

O Eloquent aplica o Design Patter ActiveRecord, e sendo este também, o ORM (Object Relational Mapper) padrão do Laravel. Com este método, cada tabela da Base de dados, é representada por uma classeModel”, que é usada para interagir com essa mesma tabela.
Estes modelos, permitem todas as operações normais sobre uma determinada tabela da base de dados.

A vantagem dos uso deste método, é que pode fazer todas as operações, sem ter de escrever uma única linha de código SQL.

Já o QueryBuilder, permite não trabalhar com o nível de abstracção do Eloquent. Pelo nome, conseguimos perceber que o objectivo é a construção de Query’s para chamar algo da nossa base de dados.

6 – Artisan Console

O Artisan permite ter uma interface de linha de comandos, que nos permite a utilização de comandos que facilita (e muito) a construção da nossa aplicação. Para tal, basta aceder a nossa pasta do projecto, e correr o seguinte comando:

php artisan list

Aí, irá ser apresentada uma lista de comandos, como o mostrado abaixo:

Comandos disponíveis no Artisan

Para além destes comandos, ainda podemos construir os nossos, em caso de necessidade.

Conclusão

Numa nota final, e como utilizador frequente de Laravel, esta é uma das mais fáceis e aprimoradas frameworks que temos no mercado. É importante realçar que o Laravel é de utilização gratuita. Juntado a isso, o facto de ter uma comunidade tão grande, torna esta framework tão poderosa, e com uma evolução tão grande.

Aconselho quem quer iniciar no mundo das frameworks, a testar o Laravel. No entanto, como opinião muito própria, o estudo de conhecimento do PHP é muito importante, especialmente para um iniciante, antes de pegar numa framework.

Comentários

comentarios

Deixa o teu comentário

O seu endereço de email não será publicado. Campos obrigatórios marcados com *