Files
mattitja-analytics/src/AnalyticsServiceProvider.php
T
2025-09-30 10:20:29 +02:00

50 lines
1.2 KiB
PHP

<?php
namespace Mattitja\Analytics;
use Illuminate\Routing\Router;
use Illuminate\Support\ServiceProvider;
use Mattitja\Analytics\Middleware\AnalyticsMiddleware;
use Mattitja\Analytics\Services\AnalyticsClient;
class AnalyticsServiceProvider extends ServiceProvider
{
/**
* Register services in the container.
*/
public function register(): void
{
$this->mergeConfigFrom(
__DIR__.'/../config/mattitja-analytics.php',
'mattitja-analytics'
);
$this->app->singleton(AnalyticsClient::class, function ($app) {
return new AnalyticsClient;
});
}
/**
* Bootstrap services.
*/
public function boot(): void
{
$this->publishes([
__DIR__.'/../config/mattitja-analytics.php' => config_path('mattitja-analytics.php'),
], 'mattitja-analytics-config');
$this->registerMiddleware();
}
/**
* Register the analytics middleware.
*/
private function registerMiddleware(): void
{
$router = $this->app->make(Router::class);
$router->aliasMiddleware('mattitja-analytics', AnalyticsMiddleware::class);
$router->pushMiddlewareToGroup('web', AnalyticsMiddleware::class);
}
}