Laravel é um framework de desenvolvimento web em PHP. Um framework é basicamente um conjunto de ferramentas e bibliotecas pré-construídas que ajudam os desenvolvedores a criar aplicativos web mais rapidamente e com menos esforço.
O Laravel é especialmente útil para o desenvolvimento de aplicativos da web de médio e grande porte, com recursos como autenticação de usuário, gerenciamento de banco de dados, roteamento, agendamento de tarefas e muito mais. Ele segue a arquitetura MVC (Model-View-Controller), que ajuda a manter o código organizado e separado em camadas distintas.
Uma das principais vantagens do Laravel é a sua curva de aprendizado relativamente suave, tornando-o uma boa escolha para desenvolvedores iniciantes e experientes. Ele também é altamente personalizável e extensível, permitindo que os desenvolvedores adicionem seus próprios recursos e funcionalidades personalizadas.
Para aprender Laravel, é necessário ter pelo menos um conhecimento básico de programação em PHP e HTML/CSS. Você precisará saber os conceitos básicos da linguagem PHP, como variáveis, funções, estruturas de controle de fluxo, arrays, entre outros.
Também é importante ter familiaridade com o conceito de bancos de dados e saber como trabalhar com SQL para criar e gerenciar tabelas e registros.
Além disso, é recomendável que você tenha um conhecimento básico de programação orientada a objetos (POO), já que o Laravel é baseado nesse paradigma. É importante entender conceitos como classes, objetos, herança, polimorfismo, encapsulamento e interfaces.
O Método Ágora é um conjunto de metodologias com um roteiro organizado com tudo que o aluno precisa para ser capaz de desenvolver seus projetos sozinho
O principal objetivo do Método Ágora é levar o aluno à consciência de que ele (o aluno) é o responsável pela solução do problema e que com isso ele mesmo consiga raciocinar em cima do problema até que encontre a sua própria solução, como um programador de verdade faz
Um estudante de programação depois de várias tentativas de aprender programar resolveu que a partir de agora iria tentar fazer seus código sozinho, sem precisar copiar códigos de seus professores.
Consciente de que o caminho é longo e que esta é uma tarefa difícil, resolveu então começar por algo simples: Criar uma agenda de contatos, onde ele poderia fazer as principais funcionalidades do chamado CRUD, ou seja, incluir, excluir, editar e pesquisar registros, porém a ideia fixa de que precisava conseguir finalizar o projeto sozinho.
Imaginando que você seja este estudante e que precisa aprender programar sozinho, crie um projeto chamado Agenda usando os requisitos acima.
Para criar um Projeto laravel, siga os seguintes passos:
01 - Crie uma pasta onde ficará o seu projeto
02 - Abra o prompt do Windows
03 - No prompt do Windows navegue até a pasta do projeto
04 - Estando na pasta do projeto, execute o comando: composer create-project laravel/laravel nome-do-seu-projeto
O arquivo .env no Laravel é um arquivo de configuração que contém variáveis de ambiente para a aplicação. Ele é utilizado para armazenar informações sensíveis e configurações específicas do ambiente em que a aplicação está sendo executada, como senhas de banco de dados, chaves de criptografia, credenciais de API, entre outras. Essas informações são armazenadas no arquivo .env em formato de pares chave-valor
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=agenda
DB_USERNAME=root
DB_PASSWORD=
Após fazer as configurações da migration use o comando: php artisan migrate para executar todas as migrates pendentes
Schema::create('clientes', function (Blueprint $table) {
$table->id();
$table->string("nome", 80);
$table->string("cep", 10)->nullable();
$table->string("logradouro", 100)->nullable();
$table->string("uf", 2)->nullable();
$table->string("numero", 15)->nullable();
$table->string("complemento", 80)->nullable();
$table->string("cidade",100)->nullable();
$table->string("bairro", 100)->nullable();
$table->string("celular", 20)->nullable();
$table->string("sexo", 10)->nullable();
$table->date("nascimento")->nullable();
$table->string("cpf", 14)->nullable();
$table->string("email", 100)->nullable();
$table->text("observacao")->nullable();
$table->timestamps();
});
No Laravel, um "Model" é uma classe PHP que representa uma tabela no banco de dados e que é usada para interagir com os dados dessa tabela. O Model é responsável por recuperar, atualizar, inserir e excluir dados do banco de dados de forma segura e organizada. Para criar um Model no Laravel, você pode executar o seguinte comando no terminal na pasta do seu projeto:
php artisan make:model NomeDoModel
Este comando irá gerar um arquivo chamado NomeDoModel.php na pasta app/Models. Você pode definir o nome da tabela que esse Model representa sob a variável $table dentro da classe. Além disso, você pode configurar outras propriedades e métodos dentro do Model, como as colunas que podem ser preenchidas em massa (propriedade $fillable), as colunas que não podem ser preenchidas em massa (propriedade $guarded), as relações com outros Models e assim por diante.
Por fim, é importante mencionar que os Models no Laravel também podem incluir métodos personalizados para executar consultas mais complexas ou personalizadas no banco de dados.
php artisan make:model Cliente -m
No Laravel, um controller é uma classe responsável por receber uma requisição HTTP, processá-la e retornar uma resposta. Os controllers são utilizados para separar a lógica da aplicação em camadas distintas, facilitando a manutenção e a organização do código.
Para criar um controller em Laravel, você pode usar o comando php artisan make:controller NomeDoController , onde NomeDoController é o nome que você deseja dar ao seu controller. Este comando criará um arquivo de classe no diretório app/Http/Controllers, que você pode então editar para implementar a lógica do seu controller.
php artisan make:controller ClienteController -r
No Laravel, uma rota é um mecanismo que permite associar um URL a uma ação específica dentro da aplicação. Ao acessar uma URL, o Laravel busca por uma rota correspondente e, se encontrada, executa a ação associada.
Para criar uma rota no Laravel, é necessário definir uma URL e especificar qual ação será executada quando essa URL for acessada. Isso é feito no arquivo routes/web.php
- Criando o controller Home
php artisan make:controller HomeController
- Código do método index
public function index(){
return view("welcome");
}
- Código da Rota index
Route::get("/",[HomeController::class,"index"]);
Siga o passo a passo para montar o layout:
Abrir a pasta public e criar uma pasta chamada assets
Dentro da pasta assets colar as pastas css, img e js e componentes
Criar um arquivo chamado template.blade.php dentro de resources/views
Copiar o conteúdo do arquivo index.html(o layout) para o arquivo template.blade.php
Dentro arquivo template, set o caminho das imagens, css e Javascript, por exemplo: {{asset('assets/css/style.css')}}
No HomeController no método index chamar a view template
O Blade é um mecanismo de template poderoso e fácil de usar que está incluído no framework PHP Laravel. Ele é projetado para simplificar a criação de interfaces de usuário dinâmicas em aplicativos web, permitindo que os desenvolvedores escrevam códigos HTML mais legíveis e mantenham um fluxo de controle claro em seus aplicativos.
O Blade usa arquivos de template com extensão .blade.php que contêm instruções para gerar HTML dinamicamente. Esses arquivos de template são compilados em PHP puro e executados pelo servidor, permitindo que os desenvolvedores aproveitem o melhor de ambos os mundos: a facilidade de escrita do HTML e a flexibilidade do PHP
Para fatiar o layout você precisa criar alguns arquivos:
- cabecalho.blade.php
- menu.blade.php
- home.blade.php
- template.blade.php
Montando o cabecalho:
- Remova do layout principal (arquivo template.blade.php) o código referente ao cabecalho, copie dentro do arquivo cabecalho.blade.php e no arquivo template onde foi retirado o conteúdo coloque o código @include('cabecalho')
Montando o Menu:
- Remova do layout principal (arquivo template.blade.php) o código referente ao menu, copie dentro do arquivo menu.blade.php e no arquivo template onde foi retirado o conteúdo coloque o código @include('menu')
Montando o home :
- Remova do layout principal (arquivo template.blade.php) o código referente ao home, copie dentro do arquivo home.blade.php e no arquivo template onde foi retirado o conteúdo coloque o código @yield('conteudo')
- no arquivo home.blade.php Envolva o conteúdo do arquivo home com o seguinte comando:
@extends("template")
@section("conteudo")
//Aqui fica o conteúdo
@endsection
Chamando a view home
E por fim mude a chamada da view no método index do contoller HomeController ficando assim:
return View("home");
public function index(){
return View("home");
}
CRUD é o acrônimo ("sigla") da expressão em língua Inglesa Create, Read, Update e Delete, usada para definir quatro operações básicas usadas em bancos de dados.
CREATE - INSERT - Criar ou adicionar novas entradas
READ - SELECT - Consultar, Ler, recuperar ou ver entradas existentes
UPDATE - UPDATE - Atualizar ou editar entradas existentes
DELETE - DELETE - Remover entradas existentes
Para montar a view Create, faça os seguintes passos:
- crie uma rota para chamar o método create do ClienteController
- Crie uma pasta Cliente e dentro crie uma view com o nome Create.blade.php
- Configure os links do sistema para chamar a rota create, usando o código {{route('cliente.create')}}
- No método create do ClienteController chame a view Create, usando o código return view('Cliente.Create')
- Abra o arquivo cadastro.html do layout que foi baixado, copie o código correspondente a parte de cadastro e copie para a view Create, não esqueça de envolver o conteudo chamando o @extends('template') e a section('conteudo')
Criando a rota:
- Route::get("cliente/create",[ClienteController::class, "create"])->name("cliente.create");
- Método create
public function create()
{
return view("Cliente.Create");
}
- view create
@extends('template')
@section('conteudo')
@endsection
Para salvar os dados no banco faça os seguintes procedimentos:
- No formulário configure a propriedade action para chamar a rota cliente.store e a method para Post e dentro do formulário use o comando @csrf para gerar o token
- Crie o rota cliente.store
- no model Cliente crie os fillables para os campos da tabela cliente
- crie uma variável $req que recebe os dados do request com exceção do campo "_token"
- chame o método create do model Cliente e passe a variável req como parâmetro
- redirecione para a listagem de cliente
- Chamando a rota cliente.store
{{route('cliente.store')}}
- Criando a rota cliente.store
Route::post("cliente/store",[ClienteController::class,"store"])->name("cliente.store");
- Criando os fillables
protected $fillable = ["nome","cpf","nascimento","celular","cep","email","logradouro","numero","cidade","complemento","bairro","observacao","uf"];
- método store
public function store(Request $request)
{
$req = $request->except(["_token"]);
Cliente::Create($req);
return redirect()->route("cliente.index");
}
Para fazer o processo de listagem siga os passos:
- Crie a rota cliente.index
- Configure os links do sistema para chamar a rota index, usando o código {{route('cliente.index')}}
- No método index do ClienteController chame a listagem de cliente e em seguida chame a view Cliente.Index
- Crie a view Index.blade.php dentro da Pasta Cliente
- Abra o arquivo lista.html do layout que foi baixado, copie o código correspondente a parte de cadastro e copie para a view Index, não esqueça de envolver o conteudo chamando o @extends('template') e a section('conteudo')
- na View Index faça o loop para listar os dados recebidos e configure os links para edit e excluir
Criando a rota cliente.index
Route::get("cliente/index", [ClienteController::class, "index"])->name("cliente.index");
Método index
public function index()
{
$dados["lista"] = Cliente::get();
return view("Cliente.Index", $dados);
}
Loop da View Index
<tbody>
@foreach ($lista as $c)
<tr>
<td align="center">{{ $c->id }}</td>
<td align="center">{{ $c->nome }}</td>
<td align="center">{{ $c->email }}</td>
<td align="center">{{ $c->celular }}</td>
<td align="center">{{ $c->nascimento }}</td>
<td align="center">
<a href="{{ route('cliente.edit', $c->id) }}"
class="text-verde fas fa-edit d-inline-block mx-1" title="Editar"></a>
<a href="javascript:;"
onclick="confirm('Tem Certeza') ? document.getElementById('apagar{{ $c->id }}').submit(): ''; "
class="text-vermelho fas fa-trash d-inline-block mx-1"
title="Excluir"></a>
<form action="{{ route('cliente.destroy', $c->id) }}" method="POST"
id="apagar{{ $c->id }}">
@csrf
@method('delete')
</form>
</td>
</tr>
@endforeach
</tbody>