margatampu / laravel-inspector
监视和观察请求、日志和列出的模型,以维护所有可能的活动。
Requires
- php: ^7.0
- guzzlehttp/guzzle: ^6.3
Requires (Dev)
- ext-curl: *
README
监视和观察请求、日志和列出的模型,以维护所有可能的活动。Laravel inspector 用于此目的,并将数据存储在单独的数据库中。
安装
使用 composer 安装此包。
$ composer require margatampu/laravel-inspector
集成
该包已在 Laravel 和 Lumen 框架(5.7+)上进行测试并正常工作。
Laravel:安装完成后,使用 composer,您需要将以下行添加到您的 config/app.php
MargaTampu\LaravelInspector\InspectorServiceProvider::class
Lumen:对于 Lumen,您需要将以下行添加到您的 bootstrap/app.php
$app->register(MargaTampu\LaravelInspector\InspectorServiceProvider::class);
Laravel:然后从 laravel-inspector 复制 inspector
配置文件到您的配置文件夹
$ php artisan vendor:publish --provider="MargaTampu\LaravelInspector\InspectorServiceProvider"
Lumen:对于 Lumen,您需要手动将文件复制到您的配置文件夹,并在 bootstrap/app.php
中启用它
$app->configure('inspector');
配置完成后,使用以下命令从 laravel-inspector 迁移所有必要的数据库结构(在 .env
文件中预先设置数据库)
$ php artisan migrate
为了确保 laravel-inspector 运行安全,您需要使用控制台命令行生成默认值的 inspector 身份验证令牌
$ php artisan inspector:auth
它将生成一个随机密钥,您需要将其 存储在您的 .env 文件中。
集成步骤的最后一步,您需要将此行添加到您的 routes/api.php
文件中,以使用 laravel-inspector API 路由来处理将数据存储到数据库中。
MargaTampu\LaravelInspector\Inspector::api();
配置配置文件
对于您的模型活动,您需要列出您想要监视的所有模型。将所有模型放置在 config\inspector.php
文件中的 models
元素内。
'models' => [ 'App\User' ],
设置环境文件
安装和一些集成后,您需要更新 .env
文件中的设置。除了数据库设置外,您还可以添加变量
INSPECTOR_QUEUE_NAME
,分别或合并 inspector 队列与您的 Laravel 默认队列。INSPECTOR_LOG
,以限制监视的日志级别。INSPECTOR_MODEL_ENABLE
,将其设置为 true 以启用监视列出的模型。INSPECTOR_LOG_ENABLE
,将其设置为 true 以启用监视生成的所有日志。INSPECTOR_REQUEST_ENABLE
,将其设置为 true 以启用监视调用的请求。INSPECTOR_AUTHORIZATION
,以存储您生成的身份验证令牌。
别忘了更改您的 APP_URL
,使其与您当前应用程序的域名 URL 相匹配。它用作 API 路由 URL 以存储所有 inspector 数据。
继续前进
对于专家使用,您可以忽略复制 inspector API 的最后一步集成步骤,并将复制的 laravel-inspector API 路由手动复制到您的 routes/api.php
文件中,并使用您自己的控制器在将数据存储到数据库之前维护数据。
然后,您可以使用以下变量在 .env 文件
中存储目标 URL
INSPECTOR_MODEL_ENDPOINT
,处理模型 inspector 的完整 URL。INSPECTOR_LOG_ENDPOINT
,处理日志 inspector 的完整 URL。INSPECTOR_REQUEST_ENDPOINT
,处理请求 inspector 的完整 URL。
迁移定制
如果您计划将服务和消费者分开,则可以忽略 inspector 包的迁移,以防止项目将不必要的表迁移到您的消费者数据库。您应该在 AppServiceProvider
的 register 方法中调用 Inspector::ignoreMigrations
方法。
排队作业
为了防止检查器减慢您的项目,您可以使用独立的队列名称 inspector
来排队检查器任务。您可以使用以下命令运行单个队列工作者:
$ php artisan queue:work --tries=1 --queue=inspector
使用方法
使用此包后,完成所有集成步骤。您的请求、日志和模型活动将保存在数据库中。
控制台命令
您已经运行了 inspector:auth 命令来生成新的检查器默认认证令牌。除此之外,我们还有几个可用的命令:
- 自定义检查器认证名称
您可以使用此命令自定义自己的检查器认证名称:
$ php artisan inspector:auth --new
- 更新现有检查器认证的名称
您可以使用以下方式重命名现有的检查器认证名称: 注意:将 {$id} 替换为您的检查器认证 ID
$ php artisan inspector:auth --name={$id}
- 刷新现有检查器认证的令牌
与检查器认证名称一样,您也可以更改令牌或刷新它: 注意:将 {$id} 替换为您的检查器认证 ID
$ php artisan inspector:auth --refresh={$id}
测试
对于一些 laravel/lumen 项目,此包在某些部分仍然不稳定。如果您想测试此包,有几个命令可用于测试。
- 使用单个命令运行所有模块测试
您可以使用单个命令来运行所有模块(模型、日志和请求)的测试。
$ php artisan inspector:test --all
- 仅运行模型模块测试
由于您可以在配置文件中启用和禁用模块,您也可以运行单个模块。
$ php artisan inspector:test --model $ php artisan inspector:test --log $ php artisan inspector:test --request
测试模块的先决条件
为了确保您的包测试模块运行顺畅,您需要重新检查一些配置:
- 由于包测试使用运行中的数据库(不是分离的测试数据库),请将当前数据库更改为新的新鲜数据库,否则您需要手动删除插入的数据。
- 使用同步队列连接。使用除它之外的连接将强制测试退出。
- 检查模型、日志和/或请求模块是否启用。禁用模块将不会为其运行测试。
- 对于模型模块测试,包使用 User 类模型,因此您需要确保 User 模型和工厂可用。但如果您禁用了模型模块,则可以跳过此步骤。
- 对于请求模块测试,包使用 guzzle/http 访问您的主页(url('/')),请确保存在可访问的 URL。但如果您禁用了请求模块,则也可以跳过此步骤。
许可
此 laravel-teams-logging 包可在 MIT 许可证下使用。有关更多信息,请参阅 LICENSE 文件。