50 lines
1.2 KiB
PHP
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);
|
|
}
|
|
}
|