Desenvolvendo com Laravel
Um framework para a construção de aplicativos PHP modernos
Descrição do livro
O que diferencia o Laravel de outros frameworks PHP? Para começar, velocidade e simplicidade. Este framework veloz de desenvolvimento de aplicativos e seu vasto ecossistema de ferramentas permitem construir rapidamente novos sites e aplicativos com código limpo e legível. Com este guia prático, Matt Stauffer – um dos principais mentores e desenvolvedores da comunidade Laravel – fornece a introdução definitiva a um dos frameworks web mais populares da atualidade.
A visão geral de alto nível e os exemplos concretos do livro ajudarão desenvolvedores PHP experientes a começar a usar o Laravel imediatamente. Quando você chegar à última página, se sentirá à vontade para criar um aplicativo inteiro no Laravel a partir do zero.
Vários recursos do framework são apresentados, entre eles:
Blade, a ferramenta poderosa e personalizada do Laravel para a manipulação de templates
Ferramentas para a coleta, validação, normalização e filtragem de dados fornecidos pelo usuário
O ORM Eloquent do Laravel para o trabalho com os bancos de dados do aplicativo
O objeto de solicitação Illuminate e seu papel no ciclo de vida do aplicativo
PHPUnit, Mockery e PHPSpec para o teste de seu código PHP
Ferramentas do Laravel para a criação de APIs JSON e RESTful
Interfaces para acesso ao sistema de arquivos, sessões, cookies, caches e busca
Ferramentas para a implementação de filas, jobs, eventos e publicação de eventos por WebSockets
Pacotes especializados do Laravel: Scout, Passport, Cashier, Echo, Elixir, Valet e Socialite
Sumário
Sumário
- Prefácio
- capítulo 1 Por que usar o Laravel?
- Por que usar um framework?
- “Vou construir por conta própria”
- Consistência e flexibilidade
- Breve história dos frameworks web e PHP
- Ruby on Rails
- Advento dos frameworks PHP
- Vantagens e desvantagens do CodeIgniter
- Laravel 1, 2 e 3
- Laravel 4
- Laravel 5
- O que há de tão especial no Laravel?
- A filosofia do Laravel
- Como o Laravel deixa o desenvolvedor feliz
- A comunidade Laravel
- Como funciona
- Por que usar o Laravel?
- capítulo 2 Definindo um ambiente de desenvolvimento Laravel
- Requisitos do sistema
- Composer
- Ambientes de desenvolvimento locais
- Laravel Valet
- Laravel Homestead
- Criando um novo projeto Laravel
- Instalando o Laravel com a ferramenta instaladora
- Instalando o Laravel com o recurso create-project do Composer
- Estrutura de diretórios do Laravel
- Pastas
- Arquivos soltos
- Configuração
- Instalado e em execução
- Testando
- TL;DR
- capítulo 3 Roteamento e controladores
- Definições de rotas
- Verbos de rota
- Manipulação de rotas
- Parâmetros de rota
- Nomes de rota
- Grupos de rotas
- Middleware
- Prefixos de caminho
- Roteamento de subdomínio
- Prefixos de namespace
- Prefixos de nome
- Views
- Usando view composers para compartilhar variáveis com cada view
- Controladores
- Obtendo entradas do usuário
- Injetando dependências em controladores
- Controladores de recursos
- Vinculação rota modelo
- Vinculação rota modelo implícita
- Vinculação rota modelo personalizada
- Cache de rotas
- Spoofing de método de formulário
- Introdução aos verbos HTTP
- Verbos HTTP no Laravel
- Spoofing de método HTTP em formulários HTML
- Proteção contra CSRF
- Redirecionamentos
- redirect()->to()
- redirect()->route()
- redirect()->back()
- Outros métodos de redirecionamento
- redirect()->with()
- Abortando a solicitação
- Respostas personalizadas
- response()->make()
- response()->json() e ->jsonp()
- response()->download() e ->file()
- Testando
- TL;DR
- capítulo 4 Templates do Blade
- Ecoando dados
- Estruturas de controle
- Condicionais
- Loops
- or
- Herança de templates
- Definindo seções com @section/@show e @yield
- @parent
- @include
- @each
- View composers e injeção de serviços
- Vinculando dados a views usando view composers
- Injeção de serviços do Blade
- Diretivas personalizadas do Blade
- Parâmetros em diretivas personalizadas do Blade
- Exemplo: Usando diretivas personalizadas do Blade para aplicativo multitenant
- Testando
- TL;DR
- capítulo 5 Componentes frontend
- Elixir
- Estrutura de pastas do Elixir
- Executando o Elixir
- O que o Elixir fornece?
- Paginação
- Paginando resultados do banco de dados
- Criando paginadores manualmente
- Message bags
- Error bags nomeadas
- Helpers de string, pluralização e localização
- Helpers de string e pluralização
- Localização
- Testando
- Testando com o Elixir
- Testando message e error bags
- Tradução e localização
- TL;DR
- capítulo 6 Coletando e manipulando dados do usuário
- Injetando um objeto Request
- $request->all()
- $request->except() e $request->only()
- $request->has() e $request->exists()
- $request->input()
- Entrada de array
- Entrada JSON (e $request->json())
- Dados de rota
- A partir de Request
- A partir de parâmetros de rota
- Uploads de arquivos
- Validação
- validate() no controlador com o uso de ValidatesRequests
- Validação manual
- Exibindo mensagens de erro da validação
- Form requests
- Criando uma form request
- Usando uma form request
- Atribuição em massa no modelo do Eloquent
- {{ versus {!!
- Testando
- TL;DR
- capítulo 7 Artisan e Tinker
- Introdução ao Artisan
- Comandos básicos do Artisan
- Opções
- Comandos agrupados
- Criando comandos personalizados do Artisan
- Registrando comandos
- Exemplo de comando
- Argumentos e opções
- Usando entradas
- Prompts
- Saída
- Saída na forma de tabela
- Chamando comandos do Artisan em código comum
- Tinker
- Testando
- TL;DR
- capítulo 8 Bancos de dados e o Eloquent
- Configuração
- Conexões de banco de dados
- Outras opções de configuração de banco de dados
- Migrações
- Definindo migrações
- Executando migrações
- Seeding
- Criando um seeder
- Model factories
- Construtor de consultas
- Uso básico do facade DB
- SQL bruto
- Criando encadeamentos com o construtor de consultas
- Transações
- Introdução ao Eloquent
- Criando e definindo modelos do Eloquent
- Recuperando dados com o Eloquent
- Inserções e atualizações com o Eloquent
- Excluindo com o Eloquent
- Escopos
- Coleções do Eloquent
- Serialização no Eloquent
- Relacionamentos do Eloquent
- Registros-filho atualizando timestamps de registros-pai
- Eventos do Eloquent
- Testando
- TL;DR
- capítulo 9 Autenticação e autorização de usuários
- Modelo e migração de usuários
- Usando o helper global auth() e o facade Auth
- Controladores de autenticação
- RegisterController
- LoginController
- ResetPasswordController
- ForgotPasswordController
- Auth::routes()
- O scaffold de autenticação
- “Lembre-se de mim”
- Autenticando usuários manualmente
- Middlewares de autenticação
- Guards
- Alterando o guard-padrão
- Usando outros guards sem alterar o padrão
- Adicionando um novo guard
- Criando um provedor de usuário personalizado
- Provedores de usuários personalizados para bancos de dados não relacionais
- Eventos de autenticação
- Autorização (ACL) e roles
- Definindo regras de autorização
- O facade Gate (e a injeção de Gate)
- O middleware Authorize
- Autorização de controlador
- Fazendo a verificação em uma instância de User
- Verificações do Blade
- Interceptando verificações
- Políticas
- Testando
- TL;DR
- capítulo 10 Solicitações e respostas
- Ciclo de vida das solicitações no Laravel
- Inicializando o aplicativo
- Provedores de serviços
- Objeto Request
- Obtendo um objeto Request no Laravel
- Obtendo informações básicas sobre uma solicitação
- Persistência
- Objeto Reponse
- Usando e criando objetos de resposta em controladores
- Tipos de resposta especializados
- Laravel e o Middleware
- Introdução ao middleware
- Criando middleware personalizado
- Vinculando middlewares
- Passando parâmetros para o middleware
- Testando
- TL;DR
- capítulo 11 O contêiner
- Breve introdução à injeção de dependências
- A injeção de dependências e o Laravel
- O helper global app()
- Como o contêiner faz a dedução
- Vinculando classes ao contêiner
- Vinculando a um closure
- Vinculando a singletons, aliases e instâncias
- Vinculando uma instância concreta a uma interface
- Vinculação contextual
- Injeção por construtor
- Injeção por método
- Facades e o contêiner
- Como os facades funcionam
- Provedores de serviços
- Testando
- TL;DR
- capítulo 12 Testando
- Aspectos básicos dos testes
- Testes de nomenclatura
- Ambiente de teste
- Traits de teste
- WithoutMiddleware
- DatabaseMigrations
- DatabaseTransactions
- Teste de aplicativo
- TestCase
- “Visitando” rotas
- Asserções personalizadas para testes de aplicativo
- Asserções JSON e não referentes a visit() para testes de aplicativo
- Cliques e formulários
- Jobs e eventos
- Autenticação e sessões
- Artisan e seed
- Mocking
- Mockery
- Simulando facades
- TL;DR
- capítulo 13 Criando APIs
- Aspectos básicos das APIs JSON REST-like
- Organização dos controladores e retornos em JSON
- Lendo e enviando cabeçalhos
- Enviando cabeçalhos de resposta no Laravel
- Lendo cabeçalhos de resposta no Laravel
- Paginação do Eloquent
- Classificando e filtrando
- Classificando os resultados de suas APIs
- Filtrando os resultados de sua API
- Transformando resultados
- Criando seu próprio transformador
- Aninhamento e relacionamentos
- Autenticação de API com o Laravel Passport
- Breve introdução ao OAuth 2.0
- Instalando o Passport
- API do Passport
- Tipos de concessão disponíveis no Passport
- Gerenciando clientes e tokens com a API do Passport e os componentes Vue
- Escopos do Passport
- Autenticação de API por token no Laravel 5.2+
- Testando
- TL;DR
- capítulo 14 Armazenamento e recuperação
- Gerenciadores de arquivos locais e na nuvem
- Configurando o acesso a arquivos
- Usando o facade Storage
- Adicionando provedores do Flysystem
- Uploads e manipulação comum de arquivos
- Sessões
- Acessando a sessão
- Métodos disponíveis nas instâncias da sessão
- Armazenamento de sessão flash
- Cache
- Acessando o cache
- Métodos disponíveis em instâncias do cache
- Cookies
- Cookies no Laravel
- Acessando as ferramentas de cookies
- Busca por texto completo com o Laravel Scout
- Instalando o Scout
- Marcando seu modelo para indexação
- Pesquisando seu índice
- Filas e o Scout
- Executando operações sem indexar
- Acionando a indexação manualmente por meio de código
- Acionando a indexação manualmente por intermédio da CLI
- Testando
- Armazenamento de arquivos
- Sessão
- Cache
- Cookies
- TL;DR
- capítulo 15 Email e notificações
- Email
- Email “Clássico”
- Uso básico de email “mailable”
- Templates de email
- Métodos disponíveis em build()
- Anexos e imagens inline
- Filas
- Desenvolvimento local
- Notificações
- Definindo o método via() de seus notificáveis
- Enviando notificações
- Enfileirando notificações
- Tipos de notificação prontos para uso
- Testando
- Notificações
- TL;DR
- capítulo 16 Filas, jobs, eventos, broadcasting e o agendador
- Filas
- Por que usar filas?
- Configuração de fila básica
- Jobs enfileirados
- Executando um worker de fila
- Manipulando erros
- Controlando a fila
- Filas dando suporte a outras funções
- Eventos
- Acionando um evento
- Escutando um evento
- Broadcast de eventos por WebSockets e o Laravel Echo
- Configuração e preparação
- Broadcast de um evento
- Recebendo a mensagem
- Ferramentas de broadcast avançadas
- Laravel Echo (o lado JavaScript)
- Agendador
- Tipos de tarefa disponíveis
- Intervalos de tempo disponíveis
- Bloqueio e sobreposição
- Manipulando saídas das tarefas
- Hooks de tarefas
- Testando
- TL;DR
- capítulo 17 Helpers e coleções
- Helpers
- Arrays
- Strings
- Caminhos do aplicativo
- URLs
- Miscelânea
- Coleções
- Aspectos básicos das coleções
- Alguns métodos
- TL;DR
- Glossário
- Sobre o autor
- Colofão
Livros relacionados
Recursos
Opinião dos leitores
Jasiel P P
O livro fornece boas explicações e dicas sobre os comandos do Laravel e sua estrutura. O Laravel atualmente está na versão 8 e o autor aborda minuciosamente o Laravel 5, por isso, muito do que é apresentado no livro ainda pode ser aproveitado na nova versão. O livro é com certeza uma excelente fonte de referência para quem quer aprender muito bem os conceitos sobre o Laravel e aplicar esse conhecimento na prática. Se já conhece ou trabalha com PHP e quer avançar os estudos com um Framework estável e com muitos recursos, o Laravel com toda certeza vai superar suas expectativas.
Sérgio B d S
Muito explicativo, claro e direto em suas abordagens.
Danilo F de P e S
Excelente! Ótimo texto. Bem fluido. O autor é simples e direto. Consegue passar bem a filosofia Laravel. Mostra pelo menos 3 maneiras de fazer algo com o Framework e nos ajuda a ver os prós e contras. Existem alguns pequenos erros de tradução, mas não comprometem o entendimento. Estou super feliz com o livro. Vale muito a pena comprar.
Thyago B
O livro é ótimo, o autor domina o assunto, mas pra iniciante achei meio confuso, principalmente pra quem nunca viu Laravel e acha que vai aprender pelo livro, tem que dar uma boa pesquisada pela net antes de começar a ler.




