Série Programming One Volume 2 Kindle

PHP One

Acelerando com Laravel

A API da Biblioteca Casa Amarela, do HTTP cru ao deploy: REST, um framework de quarenta linhas escrito à mão, Laravel, Eloquent, validação, API Resources, erros padronizados, service container, Sanctum, Policies, filas, cache, testes e documentação — e a vida depois do deploy: upload, e-mail, notificações e filas em produção.

Atenção: o idioma desta edição é português.

31capítulos
8partes
1projeto do início ao fim
Capa de PHP One — Volume 2: Acelerando com Laravel, de Thiago Nogueira Edição Brasil
PHP 8LaravelEloquentSanctumPoliciesFilasPestOpenAPI
código do livro

Menos teoria vazia.
Mais código que funciona.

Nada de exemplo solto com foo e bar. Todo trecho pertence ao mesmo projeto, que cresce capítulo a capítulo — e os erros aparecem como aparecem na sua tela, para serem lidos linha por linha.

routes/api.php
<?phpuse App\Http\Controllers\ExemplarController;use App\Http\Controllers\LivroController;use Illuminate\Support\Facades\Route;Route::apiResource('livros', LivroController::class);Route::get('livros/{livro}/exemplares', [    ExemplarController::class, 'porLivro',])->name('livros.exemplares');
terminal
php artisan route:list --path=apiGET|HEAD  api/livros ...... livros.index › LivroController@indexphp artisan testPASS  Tests\Feature\EmprestimoTest
o projeto

Um sistema só, do primeiro arquivo ao deploy

README.md

Continua o sistema da Biblioteca Casa Amarela do volume 1. Agora ele vira uma API que o aplicativo do Kauã consome, com autenticação, permissões, filas e um deploy que não exige plantão.

Da requisição HTTP crua à API Laravel em produção.

  • Um framework de quarenta linhas, escrito à mão, antes do Laravel
  • Eloquent sobre o SQL que você já sabe escrever
  • API com validação, autorização, filas, testes e documentação
  • Erros padronizados, cache medido e deploy sem plantão
leitura de amostra

Leia uma prévia gratuita de PHP One — Volume 2

Esta amostra contém os primeiros capítulos. O PDF completo continua protegido para compradores.

Abrir prévia em nova aba →
sumário

31 capítulos em 8 partes

Abra uma parte para ver os capítulos — e a frase que abre cada um.

parte 01 A web por baixo do frameworkHTTP, REST e um framework de quarenta linhas escrito à mão. Depois deste trecho, nenhuma parte do Laravel vai parecer mágica — vai parecer trabalho que alguém já fez. 4 cap.
  1. 01
    O que é HTTPO aplicativo enviava os dados. O servidor recebia os dados. E o $_POST estava vazio.
  2. 02
    O que é uma API RESTSeu Juvenal quer um botão que renova tudo. A pergunta difícil não é como fazer — é o que acontece quando alguém aperta duas vezes.
  3. 03
    Um framework de quarenta linhasDepois de escrever o roteador, a pergunta da estagiária foi a melhor do projeto: por que não usar este e pronto?
  4. 04
    O que é o LaravelA resposta para a pergunta da estagiária tem duas partes: o que o framework faz por você, e o que ele decide sem perguntar.
parte 02 Dentro do LaravelEstrutura, configuração, rotas, controllers e respostas. O framework chegando depois do problema, que é a única ordem em que ele faz sentido. 5 cap.
  1. 05
    O primeiro projetoSeu Juvenal viu a tela de boas-vindas, leu o nome do framework em letras grandes e perguntou se já dava para cadastrar os livros.
  2. 06
    Configuração, ambiente e ArtisanA multa passou a sair zerada em produção, e em nenhuma outra máquina. A causa foi um comando de otimização rodado no deploy.
  3. 07
    Rotas e controllersO índice do Sistema tinha 137 linhas, e cada linha era um nome de arquivo. Ninguém nunca leu esse índice inteiro.
  4. 08
    Requests e responsesA estagiária enviou uma capa de livro chamada ../teste.php. O Sistema guardou, e o servidor executou.
  5. 09
    Blade, quando a tela ainda é a respostaA Vera não quer aplicativo. Ela quer um campo de busca e um botão, como o do Sistema, que funcionava.
parte 03 Eloquent sobre o SQL que você já sabeO ORM entra depois do SQL. Cada método tem uma consulta correspondente que você consegue escrever à mão — e é isso que separa usar o Eloquent de depender dele. 3 cap.
  1. 10
    Migrations, seeders e factoriesOnze e quarenta de uma quinta-feira. O terminal escreveu Dropping all tables e ele leu o endereço do banco na linha de cima.
  2. 11
    EloquentO cadastro de leitor aceitava um campo que o formulário não tinha. Quem descobriu isso virou bibliotecária-chefe em nove segundos.
  3. 12
    RelacionamentosA listagem do acervo levava quatro segundos. O log mostrou 143 consultas para mostrar 47 livros.
parte 04 A API de verdadeO que separa um CRUD de exercício de uma API que outra pessoa consome: validação, formato de saída, paginação, filtros e erro honesto. 5 cap.
  1. 13
    O CRUD completoSeu Juvenal perguntou se aquilo não era só um CRUD. A resposta tinha onze itens e estava no caderno da estagiária.
  2. 14
    Validation e Form RequestsO mesmo livro estava três vezes no acervo. O ISBN era igual nos três — a não ser pelos hífens.
  3. 15
    API ResourcesA coluna foi criada para a equipe anotar o que não dizia na frente do leitor. Durante onze dias, o leitor leu.
  4. 16
    Paginação, filtros e buscasA busca por "acafrao" não encontrava "Açafrão". Metade do acervo tinha sido cadastrada em teclados de licitação, sem cedilha.
  5. 17
    Erros padronizadosO leitor ligou dizendo que deu erro. O log tinha 4.200 linhas e nenhuma pista de qual delas era dele.
parte 05 Arquitetura e segurançaOnde a regra de negócio mora, quantas camadas o seu projeto realmente precisa, e as duas perguntas que toda requisição responde: quem é você e o que você pode. 5 cap.
  1. 18
    Service Container e injeção de dependênciaDedé abriu o contêiner de vinte linhas ao lado do contêiner do Laravel. A estagiária reconheceu a reflexão antes dele apontar.
  2. 19
    Services: onde a regra de negócio moraVera leu o método em voz alta e corrigiu uma regra que a equipe tinha entendido errado havia quatro meses. Levou dezoito segundos.
  3. 20
    MiddlewareO middleware de log gravava o corpo inteiro de cada requisição. Durante três meses, isso incluiu o campo senha.
  4. 21
    Autenticação com SanctumO Sistema guardava as senhas em MD5, sem sal. Na hora do almoço, na máquina de um desenvolvedor, sessenta por cento caíram em quatro minutos.
  5. 22
    Autorização: Gates e PoliciesO leitor ligou animado: tinha descoberto que, trocando um número no endereço, dava para ver os livros de todo mundo.
parte 06 Depois da respostaEventos, filas, cache e log. O trabalho que não cabe dentro da requisição — e o que você vai querer ter medido quando algo quebrar. 2 cap.
  1. 23
    Events, jobs e filasO aviso de devolução foi enviado 1.400 vezes para a mesma pessoa. O job não era idempotente, e o worker reiniciou no meio.
  2. 24
    Cache, logs e o que se medeA página do acervo ficou rápida e passou a mostrar como disponível um livro que estava emprestado. Por seis horas, que era o tempo de validade do cache.
parte 07 Provar e publicarTestes que dizem o que estão tentando provar, documentação que nasce do código, e o caminho até o dia do deploy sem plantão de madrugada. 4 cap.
  1. 25
    Testes: o que estamos tentando provarA multa por devolução adiantada tinha sido corrigida em outubro. Em fevereiro, voltou por outro caminho. Havia correção; não havia teste.
  2. 26
    Testes de feature, HTTP e bancoA esteira ficou vermelha por três dias num teste que passava em toda máquina local. Faltava um ORDER BY — no teste e no código.
  3. 27
    Documentação da APIA integração do aplicativo levou três semanas. A única documentação da API era uma frase: "pergunta pro Dedé".
  4. 28
    Git, CI e o dia do deployNo dia 31 de março, às sete da manhã, o papel dobrado com a senha do FTP saiu da pasta do projeto pela última vez.
parte 08 O sistema no arO dia seguinte ao deploy. Os pedidos que só aparecem quando gente de verdade usa o sistema: foto de celular, e-mail que sai assinado por quem não devia e fila que cresce mais rápido do que esvazia. 3 cap.
  1. 29
    Upload de arquivosA Vera fotografou trezentas capas com o celular novo. Metade não subiu. A outra metade subiu deitada.
  2. 30
    Mail e notificaçõesO primeiro e-mail da Casa Amarela foi assinado por um tal de Laravel, de hello@example.com. A Dona Marlene imprimiu e levou ao balcão como prova do golpe.
  3. 31
    Queues na práticaO aviso das nove chegou às três da tarde. Na frente dele, na mesma fila, estavam duzentos mil livros do Seu Juvenal.
comece pelo

PHP One — Volume 1

Fundamentos do PHP — O PHP moderno do zero, antes de qualquer framework.

Ver volume 1 →
avaliações verificadas

O que leitores dizem sobre PHP One — Volume 2

Carregando avaliações deste livro…

Ver todas as avaliações deste livro →
git commit -m "primeiro capítulo"

PHP One

Da requisição HTTP crua à API Laravel em produção. O projeto começa a rodar no primeiro capítulo — e não para mais.

Atenção: o idioma desta edição é português.