techies-africa/laravel_trakker

该包的最新版本(v1.01)没有可用的许可证信息。

官方Laravel客户端用于Trakker

v1.01 2021-12-18 16:18 UTC

This package is not auto-updated.

Last update: 2024-09-22 12:27:23 UTC


README

Trakker是一个简单易用的网站分析服务,支持服务器端日志记录。要了解更多信息,请访问trakker.techies.africa

入门指南

首先,在Trakker上创建一个应用以获取您的APP_KEY和APP_SECRET。

安装

composer require techies-africa/laravel_trakker

接下来,将服务提供者添加到您的app/config.php文件中的提供商列表下。

'providers' => [
    ...,
    App\Providers\RouteServiceProvider::class,
    TechiesAfrica\LaravelTrakker\Providers\TrakkerServiceProvider::class,
    ...
],

最后,将中间件添加到您的app\Http\Kernel.php文件中的$middleware数组下。您可以根据需要将其添加到任何数组中。

protected $middleware = [
     ...,
     \Illuminate\Session\Middleware\StartSession::class,
     TechiesAfrica\LaravelTrakker\Middlewares\TrakkerMiddleware::class,
     ...
];

设置完成。现在您需要在.env文件中添加您的密钥。


TRAKKER_BASE_URL="https://trakker.techies.africa"
TRAKKER_APP_KEY="*************"
TRAKKER_APP_SECRET="********"
TRAKKER_LOG_CHANNEL="stack"

如果您希望将错误记录在除了默认的laravel.log文件之外的其他文件中,那么请将此添加到app/logging.php文件中的channels数组中。

 'trakker' => [
     'driver' => 'single',
     'path' => storage_path('logs/trakker.log'),
     'level' => 'debug',
 ],

使用方法

安装完成后,您应该能够在应用的仪表板上看到您的活动。您可以按需自定义配置。

这是TrakkerMiddleware的样子。如果您想以不同的方式实现它,请创建一个中间件,复制handle方法的内容,并记住在Kernel文件中注册您的新中间件。

<?php

namespace TechiesAfrica\LaravelTrakker\Middlewares;

use TechiesAfrica\LaravelTrakker\Services\TrakkerService;
use Closure;
use Illuminate\Http\Request;

class TrakkerMiddleware
{
    /**
     * Handle an incoming request.
     *
     * @param  \Illuminate\Http\Request  $request
     * @param  \Closure  $next
     * @return mixed
     */
    public function handle(Request $request, Closure $next)
    {
        $tracker = TrakkerService::tracker();
        // $tracker->setIgnoreRoutes([
        //     "web.read_file"
        // ]);
        // $tracker->setAuthenticatedMiddlewares(["auth" , "admin" , "verified"]);
        // $tracker->setIgnoreMiddlewares(["Barryvdh\Debugbar\Middleware\DebugbarEnabled"]);
        // $tracker->setUserFields(["id" => "id", "name" => "full_name", "email" => "email"]);
        // $tracker->setShouldLog(false);
        $tracker->preRequest($request);

        $response =  $next($request);

        // TrakkerService::log("pushing data");
        $tracker->postRequest($request)
            ->push();

        return $response;
    }
}

可以在应用程序的任何地方访问TrakkerService::tracker();实例,并可用于修改中间件中设置的初始值。

贡献

欢迎拉取请求。对于重大更改,请首先创建一个问题以讨论您想进行更改的内容。

请确保根据需要更新测试。

许可证

MIT