d11wtq/boris
Interactive REPL for PHP powered by Boris. Drop into a console and inspect variables, evaluate code, explore objects, and debug applications quickly from the command line with an easy, lightweight shell.
console:debug, Laravel’s tinker), reducing context-switching between editor and browser.psr-4 autoloading).psysh or php -a).composer require d11wtq/boris) and launched with vendor/bin/boris.bootstrap/app.php to load the full framework context (e.g., boris --bootstrap=bootstrap/app.php).create_function, call_user_func_array edge cases).composer.json optimizations.symfony/console or monolog..env checks).psysh or Laravel’s built-in tinker as a backup.APP_ENV and APP_DEBUG checks?$app->make()), event listeners, or queue jobs?collect() helpers or Blade components?psysh (active maintenance, Laravel support) or Laravel’s tinker?User::find(1)->toArray()) without HTTP requests.Route::get(), Mail::raw()).User::all(), Route::list()).php artisan tinker for simple REPL tasks.Schema::getTableColumns('users')).psysh (install via composer require bobwebb/psysh) or Laravel’s tinker.| Component | Compatibility Risk | Workaround |
|---|---|---|
| PHP 8.x+ | High (deprecated functions) | Fork and update Boris’s REPL loop. |
| Laravel 9+ | Medium (bootstrapping changes) | Patch bootstrap/app.php loading. |
| Composer Autoloading | Low (PSR-4 support) | Ensure composer dump-autoload. |
| IDE Integration | None (CLI-only) | Use VS Code’s terminal or tmux. |
composer.json for conflicts with Boris’s dependencies..gitignore entry for vendor/bin/boris if not using globally.var_dump() vs. dd()).Auth::user(), Cache::get()).tinker or psysh due to familiarity.| Failure Scenario | Impact | Mitigation |
|---|---|---|
| PHP 8+ Incompatibility | REPL crashes on startup | Use psysh as fallback. |
| Laravel Bootstrapping Fails | No app context loaded | Manually require bootstrap/app.php. |
| Dependency Conflicts | Artisan commands break | Isolate Boris in a separate Composer install. |
| Security Vulnerabilities | Arbitrary code execution | Restrict usage to trusted environments. |
tinker.# Basic
boris --bootstrap=bootstrap/app.php
User::first()->name
# Laravel-Specific
Route::get('test', fn() => 'Hello')->name('test');
event(new \App\Events\TestEvent());
# Debugging
dd(app()->make(\App\Models\User::class));
tinker for a common task (e.g., debugging a failed job).How can I help you explore Laravel packages today?