PHPackages                             daddyofsky/nova-debug - 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. [Debugging &amp; Profiling](/categories/debugging)
4. /
5. daddyofsky/nova-debug

ActiveLibrary[Debugging &amp; Profiling](/categories/debugging)

daddyofsky/nova-debug
=====================

Framework-neutral PHP debug collector for Nova Debug DevTools — emits debug payload schema v1 (queries, dumps, traces, timeline) consumed by the browser extension or the in-page fallback renderer

v1.0.0(1mo ago)03↓66.7%MITPHPPHP &gt;=8.0

Since Jul 17Pushed 1mo agoCompare

[ Source](https://github.com/daddyofsky/nova-debug-php)[ Packagist](https://packagist.org/packages/daddyofsky/nova-debug)[ Docs](https://github.com/daddyofsky/nova-debug-devtools)[ RSS](/packages/daddyofsky-nova-debug/feed)WikiDiscussions main Synced 1w ago

READMEChangelog (1)Dependencies (1)Versions (2)Used By (0)

Nova Debug (PHP)
================

[](#nova-debug-php)

[Nova Debug DevTools 브라우저 확장](https://github.com/daddyofsky/nova-debug-devtools)의 서버측 레퍼런스 구현입니다. 요청 단위로 쿼리·덤프·트레이스·타임라인을 수집해 **프레임워크 중립 디버그 페이로드 스키마 v1** JSON을 생산합니다.

- 브라우저 확장 연동(헤더 협상 + 조회 endpoint) 및 인페이지 폴백 렌더링(debug.js) 지원
- 쿼리 분석: EXPLAIN(드라이버 주입), SLOW/DUP/LOOP 감지, 테이블별 집계
- 특정 프레임워크에 의존하지 않음 — 프레임워크 연동 지점은 전부 `Debug::configure()` 로 주입

페이로드 스키마 스펙은 확장 저장소의 [SCHEMA.md](https://github.com/daddyofsky/nova-debug-devtools/blob/main/SCHEMA.md)를 참고하세요.

설치
--

[](#설치)

### Composer

[](#composer)

```
composer require daddyofsky/nova-debug
```

### 소스 복사 (composer 미사용)

[](#소스-복사-composer-미사용)

`autoload.php` + `src/` + `assets/` 세 개만 프로젝트 안 원하는 위치에 복사한 뒤 `autoload.php` 하나만 require 하면 됩니다 (상대 배치 유지 필수).

```
your-app/lib/nova-debug/
  autoload.php
  src/
  assets/

```

```
require_once '/path/to/nova-debug/autoload.php';
```

빠른 시작
-----

[](#빠른-시작)

```
use Nova\Debug\Debug;
use Nova\Debug\Drivers\PDOQueryDriver;

Debug::configure([
    'rootPath'    => __DIR__,                                // 경로 상대화 기준
    'allowedIps'  => ['127.0.0.1'],                          // 필수 — 미설정 시 모든 접근 차단
    'queryDriver' => static fn() => new PDOQueryDriver($pdo), // EXPLAIN 분석용 (선택)
]);
Debug::initExtension(); // 브라우저 확장 헤더 협상 (헤더 전송 전 조기 호출)

// 수집
Debug::output($value, 'label');                       // 덤프
Debug::output($sql, 'QUERY [S]', ['term' => 0.0021]); // 쿼리 (label이 QUERY로 시작 + 소요시간)

// 요청 종료 시 출력 (인페이지 폴백 / 로그 / 확장용 JSON 저장을 모드에 따라 자동 처리)
register_shutdown_function([Debug::class, 'debugOutputHandler']);
```

타임라인은 `Debug::setTimestamps(['START' => $t0, 'ROUTE' => $t1, ..., 'END' => $tn])` 으로 전달합니다.

브라우저 확장 연동
----------

[](#브라우저-확장-연동)

서버는 두 가지를 제공하면 됩니다. 이 라이브러리가 둘 다 구현합니다.

1. **헤더 협상** — 요청 헤더 `X-Nova-Debug`(값 = 토큰) 검증 후 디버그 JSON을 저장하고 응답 헤더 `X-Nova-Debug-Id` 로 식별자 반환 (`Debug::initExtension()` + `debugOutputHandler()`)
2. **조회 endpoint** — 식별자로 저장된 JSON(스키마 v1) 반환 (`assets/log.php`)

조회 endpoint 는 두 방식 중 하나로 노출합니다.

```
// 방식 A — 앱 endpoint 에서 설정 후 위임 (권장)
Debug::configure([...]);              // 앱 부트스트랩과 동일 설정
require '/path/to/nova-debug/assets/log.php';
```

방식 B — `assets/` 를 웹 접근 가능한 경로에 drop-in 배치하면 `log.php` 가 관례 경로 (`상위 3단계/Debug.php`)에서 부트스트랩을 자체 탐색합니다.

프레임워크 연동 지점
-----------

[](#프레임워크-연동-지점)

전부 선택 사항이며 `Debug::configure()` 로 주입합니다.

키용도`queryDriver``AbstractQueryDriver` 인스턴스 또는 lazy Closure — EXPLAIN 실행 (PDO/Mysqli/CI3 제공, 미설정 시 EXPLAIN 없이 동작)`ajaxDetector`AJAX 판별 Closure (기본: `X-Requested-With` 헤더)`controllerNameResolver`로그 파일명용 컨트롤러명 Closure (기본: URL 경로 기반)`timestamps`타임라인 구간 타임스탬프 배열주요 설정
-----

[](#주요-설정)

키기본값설명`enabled``true`전체 on/off`allowedIps``[]`허용 IP 배열 또는 정규식 문자열. **비어 있으면 전부 차단**`query.slowTime``0.01`SLOW 쿼리 임계값(초)`dump.maxLength``8192`덤프 길이 제한`log.dir``tmp`로그/확장 JSON 저장 디렉터리 (rootPath 기준)`ext.tokens``[]`확장 토큰 목록 `[['token' => '...', 'ip' => '...']]` — 설정 시 검증 필수화`ext.only``false``true` 면 인페이지 폴백 렌더링 완전 비활성`ide.protocol` 등`phpstorm`트레이스 IDE 딥링크전체 키 목록과 기본값은 [src/Debug.php](src/Debug.php)의 `$config` 를 참고하세요.

테스트
---

[](#테스트)

```
phpunit --configuration phpunit.xml
```

License
-------

[](#license)

[MIT](LICENSE)

###  Health Score

36

—

LowBetter than 79% of packages

Maintenance90

Actively maintained with recent releases

Popularity3

Limited adoption so far

Community6

Small or concentrated contributor base

Maturity38

Early-stage or recently created project

 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

Unknown

Total

1

Last Release

46d ago

### Community

Maintainers

![](https://avatars.githubusercontent.com/u/7692173?v=4)[daddyofsky](/maintainers/daddyofsky)[@daddyofsky](https://github.com/daddyofsky)

---

Top Contributors

[![daddyofsky](https://avatars.githubusercontent.com/u/7692173?v=4)](https://github.com/daddyofsky "daddyofsky (1 commits)")

---

Tags

debugprofilerDevtoolsexplainquery-analysis

###  Code Quality

TestsPHPUnit

### Embed Badge

![Health badge](/badges/daddyofsky-nova-debug/health.svg)

```
[![Health](https://phpackages.com/badges/daddyofsky-nova-debug/health.svg)](https://phpackages.com/packages/daddyofsky-nova-debug)
```

###  Alternatives

[barryvdh/laravel-debugbar

PHP Debugbar integration for Laravel

19.6k139.2M854](/packages/barryvdh-laravel-debugbar)[fruitcake/laravel-debugbar

PHP Debugbar integration for Laravel

19.3k3.7M91](/packages/fruitcake-laravel-debugbar)[php-debugbar/php-debugbar

Debug bar in the browser for php application

4.4k36.2M85](/packages/php-debugbar-php-debugbar)[tracy/tracy

😎 Tracy: the addictive tool to ease debugging PHP code for cool developers. Friendly design, logging, profiler, advanced features like debugging AJAX calls or CLI support. You will love it.

1.8k25.9M1.6k](/packages/tracy-tracy)[fruitcake/laravel-telescope-toolbar

Toolbar for Laravel Telescope based on Symfony Web Profiler

8071.9M6](/packages/fruitcake-laravel-telescope-toolbar)[vpietri/adm-quickdevbar

QuickDevBar is a developer toolbar for magento 2

579367.5k](/packages/vpietri-adm-quickdevbar)

PHPackages © 2026

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