Pular para o conteúdo principal

Laravel - O Framework para artesãos da web.


Introdução
   
Laravel - O Framework para artesãos da web
Desde o seu lançamento em 2011, o Laravel Framework tem experimentado um crescimento exponencial. Em 2015, tornou se o Framework PHP mais acessado no Github. O Laravel foca sua atuação na simplicidade, clareza e produtividade. Tornando se assim ótimo tanto para desenvolvedores iniciantes quanto avançados e para grandes empresas.
Nosso objetivo nesse artigo é conduzi lo passo a passo na criação de uma aplicação PHP utilizando o Laravel Framework desde o início de uma idéia de uma aplicação até uma aplicação implantável.Faz se necessário a instalação de alguns aplicativos para que seu ambiente para possa utilizar o Framework Laravel. Abaixo listo os softwares necessários:
  • Instalação do ambiente PHP local: Wamp Server;
  • Sistema de Gerenciamento de Banco de Dados: MYSQL;
  • Infraestrutura de teste de software: PHPUNIT;
  • Plataforma Java Script do lado do servidor: Node JS;
Planejamento
       Planejamento é uma etapa fundamental no desenvolvimento de um projeto de software web. Cada desenvolvedor tem suas particularidades ao realizar a etapa de planejamento e também existem diversas metodologias e guias que orientam sobre o planejamento, seja em metodologias ágeis como Scrum e XP ou nas metodologias mais tradicionais como é o caso do PMBOK.
O escopo de nossa aplicação a ser desenvolvido com o Laravel Framework será a seguinte:
  • Exibir uma lista de links;
  • Formulário de envio;
  • Validação de formulário;
  • Inserção dados no Banco de Dados;
  • Gerenciador de dependências: Composer;
Criação do Projeto
         Com base em nosso planejamento já temos base para começar um novo projeto.
1. Abra seu terminal de comando e localize o diretório:
cd ~/Sites
2. Para baixar o instalador do Laravel, execute o comando abaixo:
 composer global require "laravel/installer"
3. Adicione ao PATH do sistema para que ele possa ser executado em qualquer lugar:
export PATH=”$PATH:$HOME/.composer/vendor/bin"
4. Para criar um novo projeto execute o seguinte comando:
laravel new links
Esse comando criará um novo diretório chamado links e instalará no diretório links um projeto Laravel vazio.
5. Acesse o endereço: localhost:8000. Onde será visualizado a tela de boas vindas padrão do framework;
6. Agora execute o sistema de autenticação do Laravel com o seguinte comando:
php artisan make:auth
O uso do sistema de configuração facilitará o nosso trabalho futuro com as views e com as rotas do Laravel Framework;

Criando a Lista de Links
        A implementação de uma lista de links pode parecer uma tarefa simples, entretanto envolve: banco de dados, criação de tabelas no banco de dados, listagem dos dados na interface entre outras atividades. 
1. Para isso criaremos uma migration por meio do comando artisan do Laravel. Use o comando a baixo:
php artisan make:migration create_links_table --create=links
2. Acesse o arquivo gerado em:
database/migrations{{datatime}}_create_links_table.php
3. Dentro do método Up adicione as novas colunas:
Schema::create('links', function (Blueprint $table) {
$table->increments('id');
$table->string('title');
$table->string('url’)->unique();
$table->text('description');
$table->timestamps();
});

4. Salve o arquivo e execute o comando abaixo:
php artisan migrate
5. Para criar um modelo em Laravel utilizamos o seguinte comando:
php artisan make:model Link
6. Abra o arquivo ModelFactory.php e vamos iniciar um para a tabela de links:
$factory->define(App\Link::class, function (Faker\Generator $faker) {
return [
'title' => $faker->name,
'url' => $faker->url,
'description' => $faker->paragraph,
];
});
7. Em seguida, crie um seeder para que possamos inserir dados facilmente:
php artisan make:seeder LiknsTableSeeder
8. Abra o arquivo LinksTableSeeder.php que acabou de ser criado, e no método Run vamos utilizar a fábrica de modelos que criamos acima:
public function run(){
factory(App\Link::class, 10)->create();
}
9. Abra o arquivo DatabaseSeeder.php e adicione o código abaixo ao método run:
$this->call(LinksTableSeeder::class);
10. Agora você pode executar migrations e seeders para adicionar dados automaticamente a sua tabela:
                                                          php artisan migrate --seed

Rotas e Visões
         Para criar uma interface de visão mostrando a lista de links.
1. Abra primeiro o arquivo routes/web.php e você deverá ver a rota padrão abaixo:
Route::get('/', function () {
return view('welcome');
});

2. Laravel nos fornece duas opções neste ponto. Podemos adicionar nossas adições de código diretamente ao encerramento de rota, onde a "return view .." é, ou podemos mover o código para um controlador. Para simplificar vamos adicionar o nosso código necessário para buscar o diretório de links no encerramento.
Route::get('/', function () {
$links = \App\Link::all();
return view('welcome', ['links' => $links]);
});

3. Em seguida, edite o arquivo welcome.blade.php e adicione um foreach simples para mostrar todos os links: 
@foreach ($links as $link)
<li>{{ $link->title }}</li>
@endforeach

Se você atualizar seu navegador, você verá a lista de todos os links adicionados. Com isso tudo pronto, vamos passar para enviar links.

Enviando os Links
       A próxima característica importante é a capacidade de outros usuários enviarem links para o aplicativo. Isso exigirá três campos: título, URL e uma descrição. Como adicionamos toda a estrutura do núcleo, model factory, migration e model, na última seção, podem colher os benefícios reutilizando todos os itens para esta seção.
1. Crie uma nova rota no arquivo routes/web.php
Route::get('/submit', function () {
return view('submit');
});

2. Também precisamos desse arquivo de visualização para podermos criá-lo em resources/views/ submit.blade.php e adicionar o seguinte código bootstrap boilerplate:
@extends('layouts.app')
@section('content')
<div class="container">
<div class="row">
<h1>Submit a link</h1>
<form action="/submit" method="post">
{!! csrf_field() !!}
<div class="form-group">
<label for="title">Title</label>
<input type="text" class="form-control" id="title" name="title" placeholder="Title">
</div>
<div class="form-group">
<label for="url">Url</label>
<input type="text" class="form-control" id="url" name="url" placeholder="URL">
</div>
<div class="form-group">
<label for="description">Description</label>
<textarea class="form-control" id="description" name="description" placeholder="description"></textarea>
</div>
<button type="submit" class="btn btn-default">Submit</button>
</form>
</div>
</div>
@endsection


3. Agora, vamos criar uma rota para lidar com os dados POST e fazer a nossa validação. Vamos criar essa rota e adicionar nossas regras de validação em:
Route::post('/submit', function(Request $request) {
$validator = Validator::make($request->all(), [
'title' => 'required|max:255',
'url' => 'required|max:255',
'description' => 'required|max:255',
]);
if ($validator->fails()) {
return back()
->withInput()
->withErrors($validator);
}
$link = new \App\Link;
$link->title = $request->title;
$link->url = $request->url;
$link->description = $request->description;
$link->save();
return redirect('/');
});


Esta rota é um pouco mais complexa do que as outras. Primeiro, estamos injetando o Illuminate\Http\Request que irá armazenar todos os dados POST. Em seguida, criamos uma nova instância do Validator com nossas regras. Se esta validação falhar, devolve o utilizador com os dados de entrada originais e com os erros de validação.Finalmente, se tudo foi validado, usamos o modelo "App :: Link" para adicionar os dados.

Comentários

Postagens mais visitadas deste blog

Artisan - Comandos poderosos no Laravel Framework

O Framework Laravel possui uma ferramenta de linha de comando que é instalado assim que o desenvolvedor cria um novo projeto e essa ferramenta chama se Artisan. O Artisan provê uma série de comandos altamente intuitivos que nos proporcionam a possibilidade de gerar classes, Models, FormRequest e tudo mais que o Framework possui de “poder de fogo” pode ser acessado via Artisan. Fazendo o uso do Artisan suas classes já são inteiramente criadas estendendo as classes corretas, salvas no diretório apropriado e também é gerado o arquivo para fazer os includes automáticos que forem necessários. Ao digitar o comando: php artisan , no prompt de comando você terá acesso a todos comandos para geração de código automático que ficam disponibilizados para o desenvolvedor. Agora vamos exemplificar alguns comandos disponíveis: clear-compiled: Sempre que o Framework é colocado em produção as classes principais são compiladas para o carregamento seja mais rápido. Esse processo é feito e

Sites Responsivos - Case EquipeSoft.

Nesses últimos tempos identificamos a necessidade de atualização das Redes Sociais e canais de comunicação da EquipeSoft. Para que esse objetivo fosse alcançado tornamos nosso web site responsivo e com o design mais amigável. Assim alcançamos uma melhor User Experience.Vamos tomar por base essa nova roupagem do site da EquipeSoft para tratarmos sobre Design Responsivo. O que é design responsivo? Um site responsivo muda a sua aparência e disposição com base no tamanho da tela em que o site é exibido. Então, se o usuário tem uma tela pequena, os elementos se reorganizam para lhe mostrar as coisas principais em primeiro lugar. De acordo com o site http://getbootstrap.com.br/: "Bootstrap é o mais popular framework HTML, CSS, e JS para desenvolvimento de projetos responsivo e focado para dispositivos móveis na web." Nesse projeto foi utilizado o framework Bootstrap devido a sua eficácia comprovada no que diz respeito a responsividade. Pois o Bootstrap traz uma série de

A Arquitetura de Software na prática

O software tem evoluído em grande proporção se comparado a evolução do hardware, porém a evolução no que tange a desenvolvimento de software deu se de forma posterior ao hardware.Nesse contexto surge a Arquitetura de Software com o objetivo prover um conjunto de elementos arquiteturais que possuem alguma organização.Assim apresentamos um modelo arquitetural empregado no desenvolvimento de uma aplicação comercial. Toda a base de desenvolvimento do sistema será fundamentada na arquitetura de software baseado em casos de uso, devido a estes proporcionarem uma visão de alto nível das funcionalidades do sistema, apoiando esta arquitetura os conceitos de orientação a objetos nas camadas de desenvolvimento. Nesse contexto será empregada a Modelagem Arquitetura e Visão 4+1 (GARLAN, 1995). Desta forma os ambientes físico e lógico serão interligados pela Visão de Casos de Uso que é responsável por apresentar um subconjunto significante formado por diagramas de Caso de Uso, que permitem uma