2. Configuração do Ambiente PHP Profissional

Antes de escrever código, precisamos de um ambiente configurado corretamente. Isso inclui PHP 8.2+, Composer (gerenciador de dependências), extensões necessárias e uma estrutura de pastas organizada.

checklist Requisitos do Sistema

🐘 PHP 8.2 ou Superior

Recursos modernos como tipos união, readonly properties e performance melhorada.

# Verificar versão instalada
php -v

# Deve mostrar: PHP 8.2.x ou superior

📦 Composer 2.x

Gerenciador de dependências para instalar bibliotecas como JWT, validação, etc.

# Verificar instalação
composer --version

# Instalar (se necessário)
# https://getcomposer.org

extension Extensões PHP Necessárias

warning
Importante: Sem estas extensões, funções críticas não funcionarão. Verifique antes de continuar.
Essencial

pdo_mysql

Conexão com MySQL/MariaDB usando PDO (Prepared Statements).

Essencial

mbstring

Suporte a caracteres UTF-8 e strings multibyte (acentos, emojis).

Essencial

openssl

Criptografia para HTTPS, JWT, password hashing e tokens seguros.

Recomendado

curl

Requisições HTTP para APIs externas (Stripe, PIX gateways).

Recomendado

json

Codificação/decodificação JSON (comunicação com React).

Recomendado

intl

Formatação de datas, moedas e validação de locales.

# Verificar extensões instaladas
php -m

# Se faltar alguma, instalar (Ubuntu/Debian):
sudo apt-get install php8.2-mysql php8.2-mbstring php8.2-curl php8.2-xml php8.2-intl

# Reiniciar servidor web
sudo systemctl restart apache2  # ou nginx

folder Estrutura de Pastas Profissional

backend/
│
├── public/                    ← Ponto de entrada público
│   ├── index.php             ← Router principal
│   └── .htaccess             ← Reescritas de URL (Apache)
│
├── src/                      ← Código fonte
│   ├── config/
│   │   ├── database.php      ← Conexão PDO
│   │   └── env.php           ← Carrega variáveis .env
│   │
│   ├── controllers/
│   │   ├── AuthController.php
│   │   ├── UserController.php
│   │   └── PaymentController.php
│   │
│   ├── models/
│   │   ├── User.php
│   │   └── Payment.php
│   │
│   ├── middleware/
│   │   ├── AuthMiddleware.php    ← Verifica JWT
│   │   ├── CORSMiddleware.php    ← Headers CORS
│   │   └── RateLimitMiddleware.php
│   │
│   ├── services/
│   │   ├── JWTService.php
│   │   ├── PasswordService.php
│   │   └── PaymentService.php
│   │
│   └── utils/
│       ├── Validator.php
│       └── Response.php
│
├── vendor/                   ← Dependências (Composer)
├── .env                      ← Variáveis de ambiente (NÃO COMITAR!)
├── .env.example              ← Template do .env
├── composer.json             ← Dependências
└── README.md

build Instalando Dependências com Composer

# composer.json
{
  "name": "seu-projeto/backend-api",
  "description": "Backend PHP com autenticação e pagamentos",
  "require": {
    "php": ">=8.2",
    "firebase/php-jwt": "^6.8",
    "vlucas/phpdotenv": "^5.5",
    "rakit/validation": "^1.4",
    "guzzlehttp/guzzle": "^7.8"
  },
  "autoload": {
    "psr-4": {
      "App\\": "src/"
    }
  }
}
# Instalar todas as dependências
composer install

# Isso cria a pasta vendor/ com:
# - firebase/php-jwt: Geração e validação de tokens JWT
# - phpdotenv: Carrega variáveis de .env
# - rakit/validation: Validação de dados robusta
# - guzzle: Cliente HTTP para APIs externas

settings Arquivo .env (Variáveis Sensíveis)

block
🚨 NUNCA COMITE .env NO GIT! Adicione ao .gitignore. Exponha apenas .env.example como template.
# .env
# Database
DB_HOST=localhost
DB_PORT=3306
DB_NAME=seu_banco
DB_USER=seu_usuario
DB_PASS=senha_super_segura_aqui

# JWT
JWT_SECRET=chave_aleatoria_256_bits_nunca_exponha
JWT_EXPIRY=3600  # 1 hora em segundos

# API
API_URL=https://api.seusite.com
FRONTEND_URL=https://seusite.com

# Payment Gateways
STRIPE_SECRET_KEY=sk_test_...
PAGARME_API_KEY=...

# Environment
APP_ENV=production  # development | production
APP_DEBUG=false
check_circle
✅ Ambiente Configurado! Agora você tem PHP 8.2+, Composer, extensões e estrutura de pastas. Próxima seção: Conexão segura com banco de dados usando PDO.