Introdução ao Laravel e Configuração do Ambiente de Desenvolvimento
Laravel é o framework PHP mais popular do mundo — sua sintaxe elegante torna o desenvolvimento web eficiente e agradável, assim como a evolução das cartas manuscritas para o e-mail.
1. O Que Você Vai Aprender
- Laravel 11: Recursos da Versão e Visão Geral do Ecossistema
- Requisitos do Sistema PHP 8.2+ e o Gerenciador de Pacotes Composer
- Ambientes de Desenvolvimento Docker: Laravel Sail vs. Laravel Herd
- Crie seu primeiro projeto, ShopMetrics
- Uma Análise da Estrutura de Diretórios do Laravel
2. Uma História Real de um Empreendedor
(1) Dor: Mantendo scripts de análise de e-commerce manualmente
Bob é um desenvolvedor independente que mantém manualmente mais de 20 scripts PHP de análise para cinco clientes de e-commerce — toda vez que um cliente solicita um novo relatório, ele precisa escrever SQL do zero, montar HTML e lidar com uploads de arquivos. No mês passado, a loja da Alice precisava adicionar um recurso de cobrança por assinatura. Bob passou três noites sem dormir para entregá-lo, e o código estava espalhado por 15 pastas — até ele mesmo não conseguia descobrir onde estava a lógica. Charlie teve ainda pior: tentou escrever uma API em PHP nativo, apenas para descobrir que todas as 2.000 linhas de código estavam repletas de vulnerabilidades de injeção SQL.
(2) A Solução do Laravel
O Laravel usa um conjunto de convenções elegantes para encapsular tarefas repetitivas — como roteamento, banco de dados, autenticação e filas — em ferramentas prontas para uso. Bob só precisa definir seus modelos e rotas, e páginas CRUD, endpoints de API e autenticação de usuários serão gerados automaticamente.
# Criar projeto em 30 segundos
composer create-project laravel/laravel ShopMetrics
cd ShopMetrics
php artisan serve
# Acesse http://localhost:8000 — seu app está rodando!
(3) Resultado
Depois que Bob reescreveu o ShopMetrics usando Laravel, o tempo necessário para gerar um novo relatório de dados foi reduzido de 3 dias para 3 horas, e a quantidade de código foi reduzida em 70%; o recurso de assinatura da Alice entrou no ar em apenas 2 dias.
3. O Que É Laravel?
O Laravel é um framework web PHP de código aberto criado por Taylor Otwell em 2011. Segue o padrão arquitetural MVC e é conhecido por sua "sintaxe elegante" e "experiência do desenvolvedor".
graph LR
A[Laravel Framework] --> B[Roteamento]
A --> C[Eloquent ORM]
A --> D[Templates Blade]
A --> E[Autenticação]
A --> F[Sistema de Filas]
A --> G[Broadcasting de Eventos]
A --> H[Console Artisan]
(1) Filosofia de Design Central
- Convenção sobre configuração: Seguir convenções significa escrever menos código; sobrescreva-as apenas quando personalização for necessária
- Sintaxe Elegante: Substitua código procedural verboso por chamadas encadeadas fluidas
- Solução Full-Stack: Um único framework que cobre todas as necessidades, do roteamento à implantação
(2) Novos Recursos no Laravel 11
| Recurso | Descrição |
|---|---|
| Estrutura de diretórios simplificada | Remoção de 9 arquivos, incluindo app/Http/Kernel.php |
| Bootstrap Mais Leve | bootstrap/app.php Configurando Middleware e Exceções em um Único Arquivo |
| Usa SQLite por padrão | Pronto para uso imediato, sem necessidade de configuração MySQL |
| Limitação de Taxa por Segundo | Limitação de Taxa Precisa ao Segundo |
| Melhorias na Busca Scout | Suporte para busca de texto completo e busca vetorial |
4. Visão Geral do Ecossistema Laravel
O Laravel não oferece apenas um framework central, mas também um conjunto completo de ferramentas oficiais que cobrem todo o processo do desenvolvimento à implantação.
| Ferramenta | Finalidade | Descrição |
|---|---|---|
| Forge | Gerenciamento de Servidor | Implantação com um clique para DigitalOcean/Vultr |
| Vapor | Implantação Serverless | Solução Serverless Baseada no AWS Lambda |
| Nova | Painel Backend | CMS/Painel Admin Oficial |
| Sail | Ambiente de Desenvolvimento Docker | Configuração Docker Compose Integrada |
| Herd | Ambiente de Desenvolvimento Local | Runtime PHP Nativo para macOS/Windows |
| Breeze | Scaffolding de Autenticação | Template Leve de Login/Registro |
| Sanctum | Autenticação API | Autenticação Dual SPA + Token |
| Echo | Broadcasting em Tempo Real | Biblioteca Frontend de Push de Eventos WebSocket |
(1) ▶ Exemplo: Verificando a versão do Laravel e ferramentas do ecossistema
# Verificar versão do Laravel
php artisan --version
# Saída: Laravel Framework 11.x
# Verificar pacotes instalados via Composer
composer show | grep laravel
# laravel/framework
# laravel/sail
# laravel/sanctum
# laravel/tinker
Saída:
# Comando executado com sucesso
5. Configuração do Ambiente
(1) PHP 8.2+ e Composer
O Laravel 11 requer PHP 8.2 ou superior. O Composer é um gerenciador de pacotes para PHP, similar ao npm para Node.js.
| Requisito | Versão Mínima | Versão Recomendada |
|---|---|---|
| PHP | 8.2 | 8.3 |
| Composer | 2.0 | 2.8+ |
| Extensão: Ctype | ✅ | ✅ |
| Extensão: cURL | ✅ | ✅ |
| Extensão: DOM | ✅ | ✅ |
| Extensão: MBstring | ✅ | ✅ |
| Extensão: OpenSSL | ✅ | ✅ |
| Extensão: PDO | ✅ | ✅ |
| Extensão: Tokenizer | ✅ | ✅ |
(1) ▶ Exemplo: Instalar o Composer e Verificar o Ambiente
# Instalar Composer (macOS/Linux)
curl -sS https://getcomposer.org/installer | php
mv composer.phar /usr/local/bin/composer
# Verificar versões do PHP e Composer
php -v
# PHP 8.3.x (cli)
composer -V
# Composer version 2.8.x
Saída:
{"status":"ok","data":{}}
(2) Soluções Docker: Laravel Sail vs. Laravel Herd
| Dimensão | Laravel Sail | Laravel Herd |
|---|---|---|
| Princípio | Contêineres Docker | PHP Nativo + Nginx |
| Plataforma | Win/Mac/Linux | Mac/Windows |
| Performance | Mais lento (overhead de contêiner) | Mais rápido (execução nativa) |
| Isolamento | Isolamento Completo | Isolamento Parcial |
| Adequado para | Ambiente de equipe unificado | Desenvolvimento individual rápido |
| Tempo de Inicialização | 30-60 s | 5 s |
(2) ▶ Exemplo: Iniciando um Projeto Usando Laravel Sail
# Criar projeto com Sail
curl -s https://laravel.build/ShopMetrics | bash
cd ShopMetrics
# Iniciar todos os serviços (MySQL, Redis, MeiliSearch...)
./vendor/bin/sail up -d
# Executar comandos Artisan dentro do Sail
./vendor/bin/sail artisan migrate
Saída:
{"status":"ok","data":{}}
(3) ▶ Exemplo: Iniciando um Projeto Usando Laravel Herd
# Após instalar o Herd em laravelherd.com
# O Herd detecta automaticamente projetos em ~/Herd ou ~/Sites
cd ~/Herd
composer create-project laravel/laravel ShopMetrics
cd ShopMetrics
# O Herd provisiona automaticamente o domínio .test
# Acesse: http://ShopMetrics.test
Saída:
# Comando executado com sucesso
6. Criar o Projeto ShopMetrics
(1) Criando um Projeto Usando o Composer
composer create-project laravel/laravel ShopMetrics
cd ShopMetrics
(2) Analisando a Estrutura de Diretórios
ShopMetrics/
├── app/ # Código central da aplicação
│ ├── Http/ # Controllers, Middleware, Requests
│ ├── Models/ # Modelos Eloquent ORM
│ └── Providers/ # Provedores de serviço
├── bootstrap/ # Arquivos de bootstrap do framework
├── config/ # Arquivos de configuração
├── database/ # Migrations, Seeders, Factories
├── public/ # Raiz web (index.php)
├── resources/ # Views, assets, arquivos de idioma
├── routes/ # Definições de rotas
│ ├── web.php # Rotas web
│ └── api.php # Rotas API
├── storage/ # Logs, cache, arquivos compilados
├── tests/ # Testes PHPUnit/Pest
└── vendor/ # Dependências Composer
| Diretório | Responsabilidades | Analogia |
|---|---|---|
app/ |
Lógica de Negócio | O Escritório da Empresa |
routes/ |
Roteamento de URL | Recepcionista da Empresa |
resources/views/ |
Template de Página | Showroom da Empresa |
database/ |
Estruturas de Dados | Arquivo da Empresa |
config/ |
Parâmetros de Configuração | Políticas e Procedimentos da Empresa |
public/ |
Portal Web | Portão da Empresa |
(1) ▶ Exemplo: Iniciar o servidor de desenvolvimento e acessar a página inicial
cd ShopMetrics
# Iniciar o servidor de desenvolvimento integrado
php artisan serve
# Iniciando servidor de desenvolvimento Laravel: http://127.0.0.1:8000
# Acesse http://127.0.0.1:8000 no navegador
# Você deve ver a página de boas-vindas do Laravel
Saída:
# Comando executado com sucesso
7. Exemplo Abrangente: Inicializando o Projeto ShopMetrics
# ============================================
# Abrangente: Inicializar projeto ShopMetrics
# Conteúdo: criar projeto, configurar .env, executar migrations, servir
# ============================================
# 1. Criar o projeto Laravel
composer create-project laravel/laravel ShopMetrics
cd ShopMetrics
# 2. Configurar ambiente
cp .env.example .env
php artisan key:generate
# Chave da aplicação definida com sucesso.
# 3. Configurar banco de dados no .env (usando SQLite para início rápido)
# DB_CONNECTION=sqlite
# DB_DATABASE=database/database.sqlite
# 4. Executar migrations padrão
php artisan migrate
# Tabelas de migration criadas: users, password_reset_tokens, etc.
# 5. Iniciar servidor de desenvolvimento
php artisan serve
# Servidor rodando em http://127.0.0.1:8000
# 6. Verificar instalação
php artisan about
# Ambiente: Local
# Versão Laravel: 11.x
# Versão PHP: 8.3.x
Saída:
Application key set successfully.
Info: Using SQLite database: database/database.sqlite
Migration table created successfully.
Running migrations:
0001_01_01_000000_create_users_table ... done
0001_01_01_000001_create_password_reset_tokens_table ... done
Starting Laravel development server: http://127.0.0.1:8000
❓ Perguntas Frequentes
php artisan serve.bootstrap/app.php.vendor/), enquanto npm é o gerenciador de pacotes para Node.js (gerencia o diretório node_modules/). O Laravel usa ambos: o Composer gerencia dependências PHP, e o npm gerencia recursos de front-end.php artisan about no diretório do projeto. Ele listará todas as informações do ambiente, como versão do PHP, extensões e drivers de banco de dados; quaisquer itens que não atendam aos requisitos serão destacados em vermelho.📖 Resumo
- Laravel é o framework full-stack PHP mais popular, conhecido por sua sintaxe elegante e experiência do desenvolvedor
- Laravel 11 simplificou sua estrutura de diretórios e usa SQLite por padrão, facilitando o início
- O ecossistema Laravel inclui uma cadeia de ferramentas completa como Forge, Vapor, Sail, Herd e Sanctum
- Para configuração do ambiente, recomendamos usar Docker (Sail) ou instalação nativa (Herd); ambos requerem PHP 8.2+ e Composer
- A estrutura de diretórios do projeto segue o padrão MVC: app/ contém a lógica, routes/ contém as rotas, e resources/ contém as views
php artisan servepermite iniciar rapidamente um servidor de desenvolvimento
📝 Exercícios
-
Exercício Básico (⭐): Instale PHP 8.2+ e Composer localmente, e use
composer create-projectpara criar um projeto Laravel chamado ShopMetrics. Certifique-se de que você pode visualizar a página de boas-vindas no navegador. -
Exercício Avançado (⭐⭐): Crie o mesmo projeto usando Laravel Sail ou Docker, compare as diferenças entre os métodos de inicialização
php artisan servee Sail, e registre o tempo de inicialização e uso de memória. -
Desafio (⭐⭐⭐): Revise as mudanças na estrutura de diretórios do Laravel 11 (comparado ao Laravel 10), e liste os arquivos que foram removidos junto com como suas funcionalidades são agora implementadas no Laravel 11.



