PHPackages                             ocowe1/eva - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Logging &amp; Monitoring](/categories/logging)
4. /
5. ocowe1/eva

ActiveLibrary[Logging &amp; Monitoring](/categories/logging)

ocowe1/eva
==========

Biblioteca de integração com o EVA AI para monitoramento, relatórios de erros e insights em tempo real.

1.0.5(9mo ago)00MITPHPPHP &gt;=8.0

Since Sep 11Pushed 9mo agoCompare

[ Source](https://github.com/ocowe1/eva)[ Packagist](https://packagist.org/packages/ocowe1/eva)[ RSS](/packages/ocowe1-eva/feed)WikiDiscussions master Synced today

READMEChangelogDependencies (2)Versions (7)Used By (0)

EVA
===

[](#eva)

Biblioteca de integração com o EVA AI para monitoramento, relatórios de erros e insights em tempo real em projetos Laravel.

Instalação
----------

[](#instalação)

Adicione via Composer:

```
composer require ocowe1/eva
```

Publicação de Configuração e Views
----------------------------------

[](#publicação-de-configuração-e-views)

Após instalar, publique os arquivos de configuração e views:

```
php artisan vendor:publish --provider="Eva\EvaServiceProvider" --tag=config
php artisan vendor:publish --provider="Eva\EvaServiceProvider" --tag=views
```

Configuração
------------

[](#configuração)

Edite `config/eva.php` conforme sua necessidade:

- Recipients (destinatários)
- Módulo
- E-mail remetente
- Nível de detalhe
- Sincronia/envio

Uso Básico
----------

[](#uso-básico)

Dispare um alerta de exceção:

```
use Eva\Mail\EvaAlertMailable;
use Illuminate\Support\Facades\Mail;

try {
    // ...código que pode falhar...
} catch (\Throwable $e) {
    $payload = [
        'title' => 'Erro Crítico',
        'class' => get_class($e),
        'message' => $e->getMessage(),
        'file' => $e->getFile(),
        'line' => $e->getLine(),
        'stack' => $e->getTraceAsString(),
        'suggestion' => (new Eva\Suggester())->suggest($e, [
            'file' => $e->getFile(),
            'line' => $e->getLine(),
            'stack' => $e->getTraceAsString(),
        ]),
    ];
    Mail::to(config('eva.recipients'))->send(new EvaAlertMailable($payload));
}
```

Preview do E-mail
-----------------

[](#preview-do-e-mail)

Abra `docs/preview.html` no navegador para visualizar o layout do e-mail gerado.

Sugestões Automáticas
---------------------

[](#sugestões-automáticas)

A classe `Eva\Suggester` analisa a exceção e contexto, retornando dicas automáticas para resolução do erro.

Changelog
---------

[](#changelog)

- 1.0.5: Preview moderno, heurísticas ampliadas no Suggester, highlight.js no preview
- 1.0.4: Correção de colisão Blade, layout do e-mail aprimorado
- 1.0.3: Configuração e publish tags melhorados
- 1.0.2: Versão inicial

Contribuição
------------

[](#contribuição)

Pull requests são bem-vindos! Para reportar bugs ou sugerir melhorias, abra uma issue.

Licença
-------

[](#licença)

MIT

Microsoft Teams (Incoming Webhook)
----------------------------------

[](#microsoft-teams-incoming-webhook)

Para enviar alertas também para um canal do Microsoft Teams, configure as variáveis de ambiente no seu `.env`:

```
EVA_TEAMS_ENABLED=true
EVA_TEAMS_WEBHOOK=https://outlook.office.com/webhook/....
EVA_TEAMS_TITLE="EVA Alert"
```

Quando `EVA_TEAMS_ENABLED` estiver `true` e a webhook definida, o pacote tentará enviar um cartão simples para o Teams com o resumo do erro e a sugestão automática.

Observação: por padrão o pacote usa `file_get_contents` para enviar o POST JSON; se sua aplicação usa `guzzlehttp/guzzle` (recomendado) ele fará uso do Guzzle quando disponível.

Ícone para Teams:

- O Teams também pode usar o mesmo SVG usado no Slack. Defina `EVA_TEAMS_ICON_URL` apontando para o mesmo recurso público do `EVA_SLACK_ICON_URL` (ex.: raw GitHub URL ou CDN).
- O projeto inclui `resources/assets/eva-icon.svg` com a cor principal `#d6b006`. Use este único ícone para Slack e Teams (defina `EVA_SLACK_ICON_URL` e `EVA_TEAMS_ICON_URL` apontando para o mesmo recurso público).

Slack (Incoming Webhook)
------------------------

[](#slack-incoming-webhook)

Para enviar alertas ao Slack usamos Incoming Webhooks (URL no formato `https://hooks.slack.com/services/...`).

Adicione no seu `.env`:

```
EVA_SLACK_ENABLED=true
EVA_SLACK_WEBHOOK=https://hooks.slack.com/services/AAA/BBB/CCC
EVA_SLACK_USERNAME=Eva
EVA_SLACK_ICON_EMOJI=":robot_face:"
# Opcional: URL pública para um SVG/PNG personalizado (ex.: raw GitHub URL ou CDN)
EVA_SLACK_ICON_URL=https://raw.githubusercontent.com/ocowe1/eva/master/resources/assets/eva-icon.svg
EVA_SLACK_DEDUPE_TTL=300
```

O pacote inclui um `SlackNotifier` que formata mensagens com Blocks (título, resumo, campos e snippet) e um Job `SendSlackNotification` para enfileirar envios (recomendado). Por padrão o envio é assíncrono quando `eva.sync_send` estiver `false`.

Teste rápido com curl (webhook):

```
curl -X POST -H 'Content-type: application/json' \
    --data '{"text":"Teste: webhook do Slack configurado com sucesso"}' \
    "https://hooks.slack.com/services/AAA/BBB/CCC"
```

Notas sobre o ícone personalizado:

- Hospede o SVG em um local público (GitHub raw, CDN, S3) e aponte `EVA_SLACK_ICON_URL` para esse recurso.
- O projeto inclui um ícone `resources/assets/eva-icon.svg` que você pode hospedar e usar.

Recomenda-se usar filas + Redis para dedupe e retry em produção.

###  Health Score

28

—

LowBetter than 52% of packages

Maintenance56

Moderate activity, may be stable

Popularity0

Limited adoption so far

Community6

Small or concentrated contributor base

Maturity45

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 100% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~0 days

Total

6

Last Release

292d ago

### Community

Maintainers

![](https://avatars.githubusercontent.com/u/53479130?v=4)[Vinicius Costa](/maintainers/ocowe1)[@ocowe1](https://github.com/ocowe1)

---

Top Contributors

[![ocowe1](https://avatars.githubusercontent.com/u/53479130?v=4)](https://github.com/ocowe1 "ocowe1 (2 commits)")

### Embed Badge

![Health badge](/badges/ocowe1-eva/health.svg)

```
[![Health](https://phpackages.com/badges/ocowe1-eva/health.svg)](https://phpackages.com/packages/ocowe1-eva)
```

###  Alternatives

[illuminate/notifications

The Illuminate Notifications package.

513.1M1.1k](/packages/illuminate-notifications)[illuminate/log

The Illuminate Log package.

6225.3M623](/packages/illuminate-log)[masterro/laravel-mail-viewer

Easily view in browser outgoing emails.

65108.9k](/packages/masterro-laravel-mail-viewer)[flarum/core

Delightfully simple forum software.

201.4M2.3k](/packages/flarum-core)[spatie/laravel-flare

Send Laravel errors to Flare

111.4M7](/packages/spatie-laravel-flare)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
