O que sentry-php-sdk faz?
Configuração completa do SDK do Sentry para PHP. Use quando solicitado a "adicionar o Sentry ao PHP", "instalar sentry/sentry", "configurar Sentry no PHP" ou configurar monitoramento de erros, rastreamento, perfilamento, registro, métricas ou tarefas cron em aplicações PHP. Suporta PHP puro, Laravel e Symfony.
Funcionalidades
- Captura de erros e exceções — relata automaticamente exceções não tratadas e erros fatais.
- Rastreamento de desempenho — rastreia transações e spans para identificar gargalos.
- Perfilamento — amostragem de pilhas de chamadas para análise de performance.
- Registro estruturado — envia logs com contexto rico para o Sentry.
- Métricas — emite métricas personalizadas (contadores, distribuições, sets, gauges).
- Tarefas cron — monitora a execução de tarefas agendadas (Cron Monitoring).
Frameworks suportados
- PHP puro (qualquer aplicação que use Composer)
- Laravel (5.x e superior)
- Symfony (4.x e superior)
Como usar
Certifique-se de que o projeto usa PHP 8.1 ou superior e possui o Composer instalado.
1. Instalação
composer require sentry/sentry
2. Configuração
Crie um arquivo config.php ou adicione ao seu arquivo de inicialização:
<?php
require_once __DIR__ . '/vendor/autoload.php';
\Sentry\init([
'dsn' => getenv('SENTRY_DSN') ?: 'https://[email protected]/0',
// Opcional: defina o ambiente e release
'environment' => getenv('APP_ENV') ?: 'production',
'release' => '1.0.0',
]);
Use variáveis de ambiente para o DSN. Nunca hardcode o DSN no código.
3. Laravel
Para Laravel, instale o pacote de integração:
composer require sentry/sentry-laravel
Publique a configuração:
php artisan vendor:publish --provider="Sentry\Laravel\ServiceProvider"
Edite o arquivo config/sentry.php conforme necessário.
4. Symfony
Instale o bundle:
composer require sentry/sentry-symfony
Adicione ao config/bundles.php:
Sentry\SentryBundle\SentryBundle::class => ['all' => true],
Configure o DSN no arquivo .env:
SENTRY_DSN=https://[email protected]/0
5. Exemplo de uso
<?php
try {
// Código que pode lançar uma exceção
throw new \RuntimeException('Algo deu errado!');
} catch (\Throwable $exception) {
\Sentry\captureException($exception);
}
// Rastreamento manual
\Sentry\startTransaction(['name' => 'minha-transacao']);
// ... código ...
\Sentry\endTransaction();
Solução de problemas
- Erro: "Class 'Sentry\Sdk' not found" — certifique-se de que o Composer gerou o autoloader.
- Nenhum erro aparecendo no Sentry — verifique se o DSN está configurado corretamente e se o ambiente está ativo.
- Problemas de perfilamento — ative o profiling no DSN ou no arquivo de configuração (exige plano com profiling habilitado).
Notas
- Sempre use variáveis de ambiente para dados sensíveis (DSN, tokens).
- O desempenho pode ser ajustado com amostragem (
traces_sample_rate). - Consulte a documentação oficial do Sentry para PHP para mais detalhes.