crud_series-php_laravel

Laravel: crie aplicações web em PHP

Laravel: criando uma aplicação com MVC

Que facilidades um framework full-stack como Laravel pode nos trazer?

  • Auxílio com SQL (usando ORM), logs, tratamento de erros, etc.

Instalando o Laravel

composer create-project laravel/laravel controle-series ^9

Definindo a primeira rota

php artisan
php artisan serve

php artisan serve --host=0.0.0.0 --port=8000
http://localhost:8000/series

Qual a sintaxe para criar uma nova rota no Laravel?

Route::{verbo http}('{sua rota}', {Código a ser executado});
  • Nós podemos ter rotas com Route::get, Route::post, Route::put, Route::delete, etc.
  • Todos os verbos HTTP são válidos aqui.

Convenções de nome

php artisan make:controller SeriesController
php artisan make:controller PhotoController --resource

Lidando com Request e Response

$request->get('id');
$request->url();
$request->method();
$request->input();

response('', 302, ['Location' => 'https://google.com']);
redirect('https://google.com');

O que a função response faz?

  • Ela retorna um objeto do tipo Response com o corpo, status e cabeçalhos.

Criando um Layout

php artisan make:component Titulo

O que precisamos fazer para termos um componente do blade?

  • Criar um arquivo .blade.php no diretório resources/views/components.

Mais funcionalidades

@{{ nome }}

const series = {{ json_encode($series) }};
const series = {{ Js::from($series) }};

Entendendo o conceito – Laravel Mix

npm install

Vite e Mix

npm install laravel-mix --save-dev

Laravel Mix

  • Apesar de ser recomendado pela equipe do Laravel, é um pacote JavaScript.

Instalando o Bootstrap

npm install bootstrap
npm run dev

Qual o propósito da função asset?

  • Nos retornar o caminho de um asset (arquivo estático) que pode inclusive estar em outro domínio.

Por que não devemos ter informações sensíveis (como credenciais) em nosso código?

  • Pois isso pode expor nossa segurança.
  • Porque podemos ter credenciais diferentes em ambientes diferentes.

Migrations

php artisan make:migration create_series_table
php artisan migrate

Além de simplesmente executar um CREATE TABLE, quais outras vantagens obtemos ao utilizar migrations?

  • Sincronização dos bancos locais da equipe.
  • Versionamento do banco.

DB Facade

use Illuminate\Support\Facades\DB;

DB::select('SELECT nome FROM series');
DB::insert('INSERT INTO series (nome) VALUES (?)', [$nomeSerie]);

CSRF (Cross-Site Request Forgery)

  • O Laravel possui uma proteção contra um ataque chamado Cross-Site Request Forgery (CSRF).
  • Todo formulário que nós enviamos para o Laravel precisa ter uma informação extra: um token.
  • Esse token permite que o Laravel verifique que a requisição realmente foi enviada por um formulário do site.
  • Felizmente essa informação é simples de se adicionar, bastando usar a diretiva @csrf do blade.

Eloquent ORM

php artisan make:model Serie

Building Queries

Laravel: validando formulários, usando sessões e definindo relacionamentos

Criando séries

Serie::create($request->all());
Serie::create($request->only(['nome', 'genero']));
Serie::create($request->except(['_token']));

Visit original content creator repository
https://github.com/lucasrmagalhaes/crud_series-php_laravel

Comments

Leave a Reply

Your email address will not be published. Required fields are marked *