codeseer / php
PHP debugging library – send dumps and traces to CodeSeer desktop app
Requires
- php: >=8.0
- symfony/console: ^7.0
Requires (Dev)
- humbug/box: ^4.0
- laravel/pint: ^1.0
- pestphp/pest: ^3.0
- phpstan/phpstan: ^2.0
- phpunit/phpunit: ^11.0
README
Send dumps and traces from PHP to the CodeSeer desktop app.
Requirements
- PHP 8.0+
- CodeSeer desktop app running and listening (default:
127.0.0.1:23523)
Install
In a project (Composer)
composer require codeseer/php
Global (cs everywhere)
To use cs(), dd(), trace(), etc. in all PHP scripts (CLI and web) without adding the package to each project:
curl -sSL https://github.com/shaferllc/codeseer-php/releases/download/v1.0.15/install.sh | bash
Or with Composer:
composer global require codeseer/php codeseer install
The one-liner downloads the CodeSeer PHAR and runs install (loader to ~/.codeseer/, auto_prepend_file when writable). Add ~/.codeseer/bin to your PATH for codeseer upgrade and codeseer self-update. See global/README.md for details.
Usage
<?php require __DIR__ . '/vendor/autoload.php'; cs('Hello from PHP!'); cs(['a' => 1, 'b' => 2]); trace(); codeseer_log('Something happened', 'info');
Functions
cs(...$vars)– Dump one or more values to CodeSeer (execution continues).ds(...$vars)– Alias forcs().codeseer_dump(...$vars)– Alias forcs().dd(...$vars)– Dump then exit (like Laravel’sdd()).trace(?string $label = null)– Send current stack trace.codeseer_log(string $message, string $level = 'info')– Send a log line.
Configuration (environment)
CODESEER_ENABLED=0– Disable sending (default: enabled).CODESEER_HOST– Host of desktop app (default:127.0.0.1).CODESEER_PORT– Port (default:23523).
For more ways to get cs() everywhere (Composer global, manual php.ini, conditional loading), see global/README.md.
Testing
Tests use Pest (PHPUnit). Run tests and enforce 100% coverage:
composer run test # Run tests composer run test:coverage # Run tests with coverage (requires pcov or Xdebug)
CI runs Pint, PHPStan, and Pest with --coverage --min=100. The test:coverage script sets XDEBUG_MODE=coverage so coverage works with Xdebug (e.g. PHP 8.5). Alternatively install the pcov extension.
Framework plugins
- Laravel:
codeseer/laravel(planned) - WordPress:
codeseer/wordpress(planned)
See PLAN.md for the full roadmap.