Installation
composer require app-dev-panel/cli --dev
Add to composer.json under "require-dev" to ensure it’s only installed in local/dev environments.
Publish Config (Optional)
php artisan vendor:publish --provider="AppDevPanel\Cli\CliServiceProvider" --tag="config"
Check config/app-dev-panel.php for default settings (e.g., debug server port, HTTP server routes).
First Use Case: Debug Server Launch the debug server with:
php artisan dev-panel:debug
Access at http://localhost:8080 (or configured port). Useful for inspecting routes, middleware, and service containers in real-time.
Debugging Routes/Middleware
php artisan dev-panel:debug and navigate to the "Routes" tab to visualize route registration, middleware stacks, and bindings.Data Queries
php artisan dev-panel:query "select * from users where id = 1"
Standalone HTTP Server
php artisan dev-panel:server --port=8000
config/app-dev-panel.php under http_server.routes.Integration with Laravel Events
AppDevPanel\Cli\Events\DebugServerStarted to hook into debug server lifecycle:
use AppDevPanel\Cli\Events\DebugServerStarted;
Event::listen(DebugServerStarted::class, function () {
// Custom logic (e.g., log server startup)
});
~/.bashrc or ~/.zshrc for convenience:
alias devdebug="php artisan dev-panel:debug"
alias devquery="php artisan dev-panel:query"
.env:
APP_DEV_PANEL_ENABLED=true
Disable in production via config/app.php:
'dev_panel' => env('APP_DEV_PANEL_ENABLED', false),
Port Conflicts
8080 for debug, 8000 for HTTP server) may clash. Override via CLI:
php artisan dev-panel:debug --port=9090
lsof -i :8080.Eloquent Model Introspection
php artisan dev-panel:debug --clear-cache
HTTP Server Security
0.0.0.0 by default. Restrict to 127.0.0.1 in config:
'http_server' => [
'host' => '127.0.0.1',
],
Query Performance
select *) may time out. Limit results:
php artisan dev-panel:query "select id, name from users limit 100"
Logs: Enable verbose output for commands:
php artisan dev-panel:debug -v
Check storage/logs/laravel.log for errors.
Configuration Overrides: Use environment variables to tweak settings:
APP_DEV_PANEL_DEBUG_PORT=8081
APP_DEV_PANEL_QUERY_TIMEOUT=30
Custom Tabs Extend the debug server by creating a service provider:
use AppDevPanel\Cli\Facades\DebugPanel;
DebugPanel::addTab('my-tab', function () {
return view('vendor.app-dev-panel.tabs.my-tab');
});
Query Macros Add reusable query shortcuts in a service provider:
use AppDevPanel\Cli\Facades\QueryPanel;
QueryPanel::macro('user-count', function () {
return QueryPanel::run("select count(*) as total from users");
});
Use via CLI:
php artisan dev-panel:query "user-count"
Middleware Inspection Override the middleware inspector to add custom data:
use AppDevPanel\Cli\Events\MiddlewareInspected;
Event::listen(MiddlewareInspected::class, function ($payload) {
$payload->addData('custom_key', 'custom_value');
});
How can I help you explore Laravel packages today?