Installation
composer require app-dev-panel/api
Add the service provider to config/app.php:
'providers' => [
// ...
AppDevPanel\Api\ApiServiceProvider::class,
],
Publish Config & Migrations
php artisan vendor:publish --provider="AppDevPanel\Api\ApiServiceProvider"
Run migrations:
php artisan migrate
First Use Case: Enable Debug Endpoints
Add middleware to routes/web.php or routes/api.php:
Route::middleware(['web', 'adp.debug'])->group(function () {
// Your debug routes here
});
Test with:
curl http://your-app.test/api/debug/inspect
Structured Debug Dumps
Use Adp\Debug\Dump facade to expose structured data:
Route::get('/debug/data', function () {
return Adp\Debug\Dump::table([
'users' => User::all(),
'config' => config('app'),
]);
});
Live Inspection with SSE Stream real-time data via Server-Sent Events:
Route::get('/debug/stream', function () {
return Adp\Debug\Stream::event('user.created', fn ($user) => [
'id' => $user->id,
'name' => $user->name,
]);
});
Debugging Live Requests
Adp\Debug\Trace to log request lifecycle:
$trace = Adp\Debug\Trace::start('user_creation');
// ... business logic ...
$trace->end(['user_id' => $user->id]);
Ingestion Pipeline
Adp\Debug\Ingest::send('analytics', [
'event' => 'user_login',
'data' => $request->all(),
]);
Role-Based Access
Route::middleware(['adp.debug', 'auth:sanctum'])->group(function () {
// Admin-only debug routes
});
Performance Overhead
ADP_DEBUG_ENABLED=false
Adp\Debug\Conditional to gate debug logic:
if (Adp\Debug\Conditional::isEnabled()) {
// Debug-only code
}
SSE Connection Limits
.env:
ADP_SSE_MAX_CONNECTIONS=10
Adp\Debug\Stream::stats().Data Leakage
Adp\Debug\Dump::table([
'users' => User::select('id', 'name')->get(), // Exclude passwords
]);
Log Inspection Check raw debug logs at:
tail -f storage/logs/adp-debug.log
Endpoint Health Verify SSE streams with:
curl -N http://your-app.test/api/debug/stream
Custom Events Extend SSE events:
Adp\Debug\Stream::extend('custom.event', function ($data) {
// Custom logic
return ['processed' => true, 'data' => $data];
});
Custom Dump Formats Register a new dumper:
Adp\Debug\Dump::extend('json', function ($data) {
return json_encode($data, JSON_PRETTY_PRINT);
});
Ingestion Handlers Add a new ingestion channel:
Adp\Debug\Ingest::extend('slack', function ($data) {
// Send to Slack
});
Middleware Hooks Override debug logic in middleware:
public function handle($request, Closure $next) {
if ($request->hasHeader('X-ADP-TOKEN')) {
Adp\Debug\Conditional::forceEnable();
}
return $next($request);
}
How can I help you explore Laravel packages today?