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