Assembly One
Do zero ao RISC-V
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.
Edição Brasil
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.
<?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');
php artisan route:list --path=apiGET|HEAD api/livros ...... livros.index › LivroController@indexphp artisan testPASS Tests\Feature\EmprestimoTest
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
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.
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.
-
01
O que é HTTPO aplicativo enviava os dados. O servidor recebia os dados. E o $_POST estava vazio.
-
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.
-
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?
-
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.
-
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.
-
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.
-
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.
-
08
Requests e responsesA estagiária enviou uma capa de livro chamada ../teste.php. O Sistema guardou, e o servidor executou.
-
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.
-
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.
-
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.
-
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.
-
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.
-
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.
-
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.
-
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.
-
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.
-
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.
-
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.
-
20
MiddlewareO middleware de log gravava o corpo inteiro de cada requisição. Durante três meses, isso incluiu o campo senha.
-
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.
-
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.
-
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.
-
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.
-
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.
-
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.
-
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é".
-
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.
-
29
Upload de arquivosA Vera fotografou trezentas capas com o celular novo. Metade não subiu. A outra metade subiu deitada.
-
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.
-
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.
PHP One — Volume 1
Fundamentos do PHP — O PHP moderno do zero, antes de qualquer framework.
Outros livros da série
Assembly One
Do zero ao RISC-V
C One
Do zero ao básico em sistemas embarcados e IoT
C# One — Volume 1
Fundamentos de C#
C# One — Volume 2
.NET de verdade
COBOL One
Mainframe para o Século XXI
Java One
Aprenda, evolua, sobreviva e se divirta
JavaScript One
Do primeiro console.log ao painel em produção
Mensageria One
Mensagens, eventos e processamento assíncrono
Receber a prévia
PHP One — Volume 1
Fundamentos do PHP
Python One
Do primeiro print à API REST em produção
Ruby One
Do primeiro puts ao contrato em produção
O que leitores dizem sobre PHP One — Volume 2
Carregando avaliações deste livro…
Ver todas as avaliações deste livro →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.