404 Not Found

404 Not Found


nginx

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


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.

BASH
# 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".

100%
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

(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

BASH
# 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:

TEXT
# 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

BASH
# 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:

TEXT
{"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

BASH
# 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:

TEXT
{"status":"ok","data":{}}

(3) ▶ Exemplo: Iniciando um Projeto Usando Laravel Herd

BASH
# 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:

TEXT
# Comando executado com sucesso

6. Criar o Projeto ShopMetrics

(1) Criando um Projeto Usando o Composer

BASH
composer create-project laravel/laravel ShopMetrics
cd ShopMetrics

(2) Analisando a Estrutura de Diretórios

TEXT
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

BASH
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:

TEXT
# Comando executado com sucesso

7. Exemplo Abrangente: Inicializando o Projeto ShopMetrics

BASH
# ============================================
# 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:

TEXT
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

P Qual é a diferença entre Laravel e CodeIgniter?
R Laravel é um framework full-stack com ORM, autenticação, filas e broadcasts integrados; CodeIgniter é um framework leve que fornece apenas roteamento e MVC básico, enquanto outros recursos devem ser implementados manualmente. Laravel é adequado para projetos de médio a grande porte, enquanto CodeIgniter é adequado para projetos pequenos.
P Eu tenho que usar Docker?
R Não, você não precisa. Docker (Sail) é adequado para equipes que buscam padronizar seu ambiente, enquanto Laravel Herd é ideal para indivíduos que buscam desenvolvimento rápido. Se você já tem um ambiente PHP 8.2+, basta executar php artisan serve.
P Existem diferenças significativas entre Laravel 11 e Laravel 10?
R O Laravel 11 simplifica a estrutura de diretórios e o processo de inicialização, mas a API central permanece praticamente inalterada. Atualizar do Laravel 10 geralmente requer apenas ajustar a configuração do bootstrap/app.php.
P Por que o SQLite é recomendado como banco de dados para iniciantes?
R O SQLite não requer instalação — ao contrário do MySQL ou PostgreSQL — e está pronto para uso imediato, tornando-o ideal para aprendizado e prototipagem. Para ambientes de produção, recomendamos mudar para MySQL ou PostgreSQL.
P Qual é a diferença entre Composer e npm?
R O Composer é o gerenciador de pacotes para PHP (gerencia o diretório 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.
P Como posso determinar se meu ambiente local atende aos requisitos do Laravel?
R Execute 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


📝 Exercícios

  1. Exercício Básico (⭐): Instale PHP 8.2+ e Composer localmente, e use composer create-project para criar um projeto Laravel chamado ShopMetrics. Certifique-se de que você pode visualizar a página de boas-vindas no navegador.

  2. 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 serve e Sail, e registre o tempo de inicialização e uso de memória.

  3. 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.

Web-Tutorial.com

Equipe Técnica Web-Tutorial

Uma plataforma de tutoriais mantida por diversos desenvolvedores. Cada tutorial é escrito e revisado por profissionais da área correspondente. Trabalhamos para manter nosso conteúdo preciso e confiável — se encontrar algum problema, avise-nos.

100%