pixielity / laravel-debugbar
Laravel Debugbar integration with automatic collector discovery for Pixielity applications
Installs: 0
Dependents: 0
Suggesters: 0
Security: 0
Stars: 0
Forks: 0
pkg:composer/pixielity/laravel-debugbar
Requires
- php: ^8.5
- barryvdh/laravel-debugbar: ^3.13
- pixielity/laravel-support: *
Requires (Dev)
- mockery/mockery: ^1.6
- orchestra/testbench: ^10.0
- phpunit/phpunit: ^11.0
Suggests
- pixielity/laravel-telemetry-sentry: For error tracking and monitoring
- pixielity/laravel-telemetry-telescope: For application debugging in non-local environments
README
Laravel Debugbar integration with automatic collector discovery for Pixielity applications.
📑 Table of Contents
🌟 Overview
The Telemetry Debugbar package provides a seamless way to extend the Laravel Debugbar with custom collectors. It leverages PHP 8 attributes for automatic discovery, eliminating the need to manually register collectors in your Service Providers.
📦 Installation
This package is included with the main pixielity/laravel-telemetry package. If you need to install it separately:
composer require pixielity/laravel-telemetry-debugbar
✨ Features
- Automatic Discovery: Simply tag your collector class with
#[AsCollector]and it will be registered automatically. - Fluent Registry: Manage collectors dynamically via the built-in registry.
- Standard Integration: Works perfectly with
barryvdh/laravel-debugbar.
⚙️ Configuration
The package works out of the box. If you need to customize behavior, you can publish the configuration:
php artisan vendor:publish --tag=telemetry-debugbar-config
🎯 Attributes
AsCollector
Marks a class as a Debugbar collector.
Properties:
name: (optional) The name of the collector as it appears in the Debugbar.enabled: (default:true) Whether the collector should be registered.priority: (default:100) The order in which collectors are registered.
💡 Examples
Check the .examples directory for real-world usage patterns.
Basic Collector
use Pixielity\Debugbar\Attributes\AsCollector;
use DebugBar\DataCollector\DataCollector;
#[AsCollector(name: 'custom_metrics')]
class MyCollector extends DataCollector
{
public function collect(): array
{
return ['metric' => 'value'];
}
public function getName(): string
{
return 'custom_metrics';
}
}