php-forge / debug-core
Framework-agnostic snapshots, storage, and frontend for PHP debug adapters.
Requires
- php: >=8.3
- ext-ctype: *
- ext-intl: *
- ext-mbstring: *
- ui-awesome/html: ^0.6
- ui-awesome/html-core-component: ^0.4
- ui-awesome/html-helper: ^0.7
- ui-awesome/html-interop: ^0.4
- ui-awesome/html-mixin: ^0.8.2
- ui-awesome/html-svg: ^0.6
Requires (Dev)
- infection/infection: ^0.35
- maglnet/composer-require-checker: ^4.1
- php-forge/baseline-frontend: ^0.1
- php-forge/coding-standard: ^0.3
- phpstan/extension-installer: ^1.4
- phpstan/phpstan-strict-rules: ^2.0.3
- phpunit/phpunit: ^12.5
- xepozz/internal-mocker: ^1.4
- yii2-extensions/scaffold: ^0.2
Suggests
None
Provides
None
Conflicts
None
Replaces
None
This package is auto-updated.
Last update: 2026-09-10 15:56:46 UTC
README
Debug Core
A framework-agnostic PHP core providing snapshots, storage, and the complete frontend for debugger adapters.
Features
Installation
Install an adapter, not this package. Debug Core is pulled in transitively:
If you develop an adapter:
composer require php-forge/debug-core
PHP 8.3 or later and the ctype, intl, and mbstring extensions are required.
Adapter boundary
The core owns snapshot capture, persistence, comparison, and the shared UI. A framework adapter remains responsible for:
- collecting framework data and converting it into immutable snapshots;
- exposing the toolbar data endpoints and deciding when a response receives the toolbar;
- defining and publishing assets through its own framework;
- rendering the shared templates with its view component;
- routes, controllers, URL generation, panel metadata, and framework-specific panel views;
- implementing
Routing\DebugUrlGeneratorInterfaceso portable renderers build panel links without a framework URL manager.
The adapter-facing API is documented in the source PHPDoc under src/.
Frontend development
The frontend source lives in resources/src and Vite builds it into resources/assets/dist. Rebuild and verify with:
npm install npm run format:check npm run lint:js npm run lint:css npm run test:js npm run build