plopster/trace-code-maker

这是一个非常简单的Laravel库,旨在创建和管理唯一的跟踪代码,可用于监控、记录和跟踪服务内的错误或响应。该库允许根据提供的参数检索现有跟踪代码,如果不存在则创建新代码。

v1.4.3 2024-08-20 23:07 UTC

This package is auto-updated.

Last update: 2024-09-20 23:23:54 UTC


README

概述

TraceCodeMaker 是一个Laravel库,旨在创建和管理唯一的跟踪代码,可用于监控、记录和跟踪服务内的错误或响应。该库允许根据提供的参数检索现有跟踪代码,如果不存在则创建新代码。

要求

  • Laravel 8.x 或更高版本

  • PHP 7.4 或更高版本

  • 数据库中必须有一个 trace_codes 表,如表中所述进行安装。

安装

1. 数据库设置

首先,您需要在数据库中创建 trace_codes 表。您可以执行以下命令创建迁移 php artisan make:migration create_trace_codes_table

迁移必须具有以下结构

Schema::create('trace_codes', function (Blueprint  $table) {

$table->uuid('id')->primary();

$table->string('trace_code')->unique()->index('trace-code-index');

$table->string('service')->index('restaurant-service-index');

$table->string('http_code')->index('restaurant-http-index');

$table->string('method')->index('restaurant-method-index');

$table->string('class')->index('restaurant-class-index');

$table->string('description');

$table->timestamp('timestamp');

});

运行迁移以创建表

php  artisan  migrate

2. 服务提供者

接下来,您需要使用以下命令创建一个名为 TraceCodeMaker 的服务提供者 php artisan make:provider TraceCodeMakerServiceProvider 并具有以下结构

namespace  App\Providers;

  

use Illuminate\Support\ServiceProvider;

use Plopster\TraceCodeMaker\TraceCodeMaker;

  

class  TraceCodeMakerServiceProvider  extends  ServiceProvider

{

/**

* Register services.

*/

public  function  register(): void

{

$this->app->singleton('tracecodemaker', function ($app) {

return  new  TraceCodeMaker();

});

}

  

/**

* Bootstrap services.

*/

public  function  boot(): void

{

//

}

}

然后,如果您使用的是Laravel 11或更高版本,服务提供者会自动注册在 bootstrap\providers.php 文件中,但如果您使用的是较低版本,您必须将其注册在以下路径 config/app.php 中,如下所示

'providers' => [

// Other Service Providers
App\Providers\TraceCodeMakerServiceProvider::class,
],

3. Facade

创建一个用于访问 TraceCodeMaker 功能的facade。将以下类添加到 app/Facades/TraceCodeMaker.php

namespace  App\Facades;

  

use Illuminate\Support\Facades\Facade;

  

class  TraceCodeMaker  extends  Facade

{

protected  static  function  getFacadeAccessor()

{

return  'tracecodemaker';

}

}

最后,如果您使用的是Laravel 10或更低版本,必须在 config/app.php 中注册facade

'aliases' => [

// Other Facades

  

'TraceCodeMaker' => App\Facades\TraceCodeMaker::class,

],

用法

设置完成后,您现在可以在应用程序中使用 TraceCodeMaker 生成或检索跟踪代码。

示例

use  TraceCodeMaker;

  

$service  =  'ReservationService';

$httpCode  =  500;

$methodName  =  'reserveTable';

$className  =  'TableController';

  

$response  =  TraceCodeMaker::fetchOrCreateTraceCode($service, $httpCode, $methodName, $className);

  

if ($response['error']) {

// Handle error

echo  $response['message'];

} else {

// Use the trace code

echo  "Trace Code: "  .  $response['traceCode'];

}

在此示例中,fetchOrCreateTraceCode 将返回现有的跟踪代码或根据提供的参数创建新的代码。结果将是一个包含跟踪代码或错误消息的数组。

贡献

如果您发现任何问题或有改进建议,请随时提交问题或pull request。

许可证

此项目受MIT许可证的许可 - 有关详细信息,请参阅 LICENSE 文件。