PHPackages                             lucas-baggio/laravel-doctor - 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. [CLI &amp; Console](/categories/cli)
4. /
5. lucas-baggio/laravel-doctor

ActiveLibrary[CLI &amp; Console](/categories/cli)

lucas-baggio/laravel-doctor
===========================

CLI agent-like tool that analyzes Laravel projects for architecture, quality, security, documentation and DX

v0.1.1(2mo ago)06MITPHPPHP ^8.1CI passing

Since Feb 19Pushed 2mo agoCompare

[ Source](https://github.com/lucas-baggio/laravel-doctor)[ Packagist](https://packagist.org/packages/lucas-baggio/laravel-doctor)[ Docs](https://github.com/lucas-baggio/laravel-doctor)[ RSS](/packages/lucas-baggio-laravel-doctor/feed)WikiDiscussions main Synced 1mo ago

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

Laravel Doctor
==============

[](#laravel-doctor)

CLI no estilo “agent” que analisa projetos **Laravel** e gera um relatório com diagnóstico sobre arquitetura, qualidade, segurança, documentação e DX (Developer Experience), com sugestões de correção e correções automáticas quando possível.

Inspirado no conceito do React Doctor, adaptado para o ecossistema Laravel/PHP.

---

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

[](#instalação)

### Via Composer (projeto existente)

[](#via-composer-projeto-existente)

```
cd /caminho/do/seu/projeto/laravel
composer require --dev lucas-baggio/laravel-doctor
./vendor/bin/laravel-doctor .
```

### Clone / desenvolvimento

[](#clone--desenvolvimento)

```
git clone https://github.com/lucas-baggio/laravel-doctor.git
cd laravel-doctor
composer install
./laravel-doctor /caminho/para/projeto/laravel
```

### Global (opcional)

[](#global-opcional)

```
composer global require lucas-baggio/laravel-doctor
# Garanta que ~/.composer/vendor/bin está no PATH
laravel-doctor /caminho/para/projeto
```

---

Uso básico
----------

[](#uso-básico)

```
# Analisar o diretório atual
laravel-doctor

# Analisar um projeto específico
laravel-doctor /caminho/para/projeto

# Com opções
laravel-doctor /caminho/para/projeto --show-locations
laravel-doctor /caminho/para/projeto --fix
laravel-doctor /caminho/para/projeto --config laravel-doctor.config.php
laravel-doctor /caminho/para/projeto --report report.json
laravel-doctor /caminho/para/projeto --report report.md
laravel-doctor /caminho/para/projeto --ci --min-score 70
```

### Opções CLI

[](#opções-cli)

OpçãoDescrição`--fix`, `-f`Tenta aplicar correções automáticas quando possível (ex.: indicações para strict\_types, tabs)`--show-locations`Mostra arquivos e linhas afetadas em cada diagnóstico`--config `, `-c`Carrega configurações customizadas (PHP, JSON ou YAML)`--report `Salva relatório em arquivo (ex.: `report.json`, `report.md`)`--ci`Modo CI: termina com código de saída não-zero se a pontuação estiver abaixo do mínimo`--min-score `Pontuação mínima para o modo `--ci` (padrão: 70)---

Exemplo de saída
----------------

[](#exemplo-de-saída)

```
Laravel Doctor v0.1
Score: 72 / 100 Warning

  ████████████████░░░░░░░░

42 diagnostics across 4 categories in 1.2s

▸ Security
  ✗ Rotas de escrita em api.php: garanta autenticação (sanctum/session)
  ⚠ Model Post sem Policy ou Gate de autorização
▸ Quality
  ⚠ Controller UserController – método store sem docblock
▸ Testability
  ℹ 8 arquivo(s) de teste encontrado(s) em tests/
▸ Environment
  ⚠ Variável recomendada ausente: CACHE_DRIVER

```

---

Categorias de análise
---------------------

[](#categorias-de-análise)

CategoriaO que é verificado**environment**`.env` presente, `APP_KEY`, `APP_ENV`, `APP_DEBUG`, `CACHE_DRIVER`, `QUEUE_CONNECTION`, etc.**quality**Conformidade PSR-12 (strict\_types em `app/`, tabs, trailing space), controllers com type-hint e docblocks**documentation** (Testability)Rotas com testes, existência de `tests/`, `phpunit.xml`**security**CSRF em rotas web, Policies/Gates para models, uso de `DB::raw`/`whereRaw`, XSS em Blade, valores hardcoded**performance**(reservado para regras futuras)Cada diagnóstico tem:

- **Categoria**: `security`, `quality`, `documentation` (Testability), `environment`
- **Severidade**: `error` | `warning` | `info`
- **Mensagem** e **recomendação** de correção

### Pontuação (0–100)

[](#pontuação-0100)

- **Tetos por categoria:** nenhuma categoria tira mais que seu peso: Security 40, Quality 30, Testability 20, Environment 10.
- **Bônus:** +10 se `tests/` tiver mais de 5 arquivos PHP; +5 se existir `composer.lock`.
- O score final é limitado entre 0 e 100. Cores no terminal: vermelho (&lt;50), amarelo (50–80), verde (&gt;80).

---

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

[](#configuração)

Use um arquivo de config para ativar/desativar analisadores, ignorar paths e ajustar pesos.

Exemplo **laravel-doctor.config.php** (no seu projeto Laravel):

```
