Notas de PHP e Web
Artigos curtos e práticos sobre PHP, Laravel, bancos de dados e engenharia web (site estático).
Início
Categorias
Arquivo
Projetos
Sobre
PHP
Symfony components no PHP puro: por onde começar
· 10 de dezembro de 2025
CLI no PHP: scripts confiáveis e cron
· 10 de agosto de 2025
Erros e exceções no PHP 8+: estratégia consistente de tratamento
· 4 de março de 2023
PDO com prepared statements: evitando SQL injection na prática
· 13 de fevereiro de 2023
Composer e autoload (PSR-4): estrutura mínima que escala
· 20 de janeiro de 2023
Laravel
Laravel: caching de config e rotas em produção
· 20 de novembro de 2024
Laravel: middlewares para autenticação e rate limit
· 25 de outubro de 2024
Laravel: Eloquent vs Query Builder (quando trocar)
· 8 de outubro de 2024
Laravel: filas (queues) e jobs confiáveis
· 2 de setembro de 2024
Laravel: validação com Form Requests
· 19 de agosto de 2024
Segurança
Segredos em produção: rotate, least privilege e armazenamento
· 13 de setembro de 2025
TLS básico: headers e boas práticas
· 3 de junho de 2025
CORS sem sofrimento: mental model e configuração
· 3 de agosto de 2023
Uploads seguros: tipos, nomes, armazenamento e verificação
· 14 de julho de 2023
Rate limiting: limitando abuso sem quebrar usuários reais
· 11 de junho de 2023
JWT: quando faz sentido (e quando não)
· 21 de maio de 2023
CSRF em formulários: checklist rápido
· 12 de maio de 2023
Sessões e cookies: flags seguras, SameSite e expiração
· 18 de abril de 2023
Validação de entrada: o que validar e onde validar
· 25 de março de 2023
Performance
HTTP timeouts: conect, read, e o que logar
· 7 de outubro de 2025
SQL eficiente: evite SELECT * e colunas desnecessárias
· 18 de junho de 2025
Profiling em PHP: onde medir primeiro
· 28 de novembro de 2023
HTTP caching: ETag, Cache-Control e 304
· 8 de novembro de 2023
Paginação por cursor: por que é mais estável que LIMIT/OFFSET
· 23 de outubro de 2023
Evite N+1: sinais, diagnósticos e correções
· 6 de outubro de 2023
Cache com Redis: TTL, invalidação e padrões comuns
· 3 de setembro de 2023
OPcache: configuração recomendada para produção
· 15 de agosto de 2023
Banco de Dados
MySQL vs Postgres: diferenças práticas no dia a dia
· 15 de julho de 2025
Conexões e pool: evitando saturar o banco
· 18 de março de 2024
Migrações sem downtime: padrão de duas fases
· 6 de março de 2024
Transações: quando usar e como evitar deadlocks
· 11 de fevereiro de 2024
Postgres JSONB: filtros úteis e índices
· 9 de janeiro de 2024
Postgres: índices compostos e como escolher ordem de colunas
· 4 de janeiro de 2024
DevOps
Deploy blue/green: quando vale a pena
· 16 de agosto de 2025
Observabilidade: métricas básicas para uma API
· 30 de abril de 2025
Health checks: readiness/liveness e timeouts
· 7 de abril de 2025
Nginx + PHP-FPM: parâmetros que importam
· 31 de março de 2025
Docker para PHP: multi-stage e imagens pequenas
· 3 de março de 2025
CI/CD para PHP: pipeline mínimo (lint → testes → build)
· 8 de fevereiro de 2025
Boas Práticas
PSR-12: consistência com ferramentas automáticas
· 25 de novembro de 2025
Documentando decisões técnicas: ADR em 10 linhas
· 25 de outubro de 2025
Config por env vars: padrões e armadilhas
· 27 de julho de 2024
Lint + análise estática: PHPStan/Psalm no dia a dia
· 30 de junho de 2024
Refatoração segura: passos pequenos + testes
· 9 de junho de 2024
Versionamento de API: estratégia simples e previsível
· 19 de maio de 2024
Idempotência em APIs: retries sem duplicar efeitos
· 11 de maio de 2024
Logs estruturados: contexto mínimo para depurar rápido
· 4 de abril de 2024
Testes
Mocks e stubs: o mínimo necessário
· 26 de janeiro de 2025
Testes de integração com banco: transações e fixtures pequenas
· 25 de dezembro de 2024
PHPUnit: organização de testes e nomes claros
· 16 de dezembro de 2024