外观
日志、数据库与文档
Pin 提供结构化日志、SQL 查询监控、数据库配置、迁移增强和 Scramble 文档扩展。
日志通道
config/logging.php 默认定义:
php
'channels' => [
'app' => Config::single('app'),
'api' => Config::single('api'),
'sql' => [
...Config::single('sql'),
'ignores' => [],
],
],Pin\Log\Config::single() 用于生成单文件 JSON 日志通道配置。
SQL 日志
php
'sql_logging' => env('LOG_SQL_ENABLED', ! $isProduction),
'sql_max_length' => env('LOG_SQL_MAX_LENGTH', 10240),SQL 查询会被 QueryMonitor 归集,并可在 debug 响应中输出 sql_count、sql_time 和 sqls。
API 响应日志
php
'response' => [
'enabled' => env('LOG_RESPONSE_ENABLED', ! $isProduction),
'except' => [],
'ignore_response_data' => [
CaptchaRoute::Generate->name(),
],
'max_length' => env('LOG_RESPONSE_MAX_LENGTH', 10240),
'include_request_payload' => env('LOG_RESPONSE_INCLUDE_REQUEST_PAYLOAD', ! $isProduction),
'include_sql' => env('LOG_RESPONSE_INCLUDE_SQL', ! $isProduction),
'slow_threshold' => env('LOG_RESPONSE_SLOW_THRESHOLD', 2),
],slow_threshold 支持两种格式:
- 小于等于
10:按秒处理。 - 大于
10:按毫秒处理。
Stack Trace
php
'stack_trace' => [
'enabled' => env('LOG_STACK_TRACT_ENABLED', false),
'include_exceptions' => [],
'exclude_exceptions' => [],
'max_frames' => 10,
'include_frames' => [],
'exclude_frames' => [
'Illuminate' => 'Illuminate',
],
],可以通过 include / exclude 控制异常类型和调用帧范围。
数据库配置
默认数据库配置:
php
use Pin\Database\Config;
use Pin\Models\Model;
return [
'connections' => [
Model::CONNECTION_DEFAULT => Config::mysql(Model::CONNECTION_DEFAULT),
],
];Model::CONNECTION_DEFAULT 的值是 default。
迁移增强
MigrationServiceProvider 会替换 migration.creator,并提供发布标签:
bash
php artisan vendor:publish --tag=pin-migrations迁移基类和辅助能力位于:
Pin\Database\MigrationPin\Database\LoggingMigrationPin\Database\Concerns\HasLoggingMigrationPin\Database\Schema\ColumnPin\Database\Schema\TablePin\Database\Schema\CompilerPin\Database\Schema\Metadata
查询监控
相关对象:
| 类 | 说明 |
|---|---|
QueryMonitor | 查询监控入口 |
QueryProfile | 汇总查询数量和耗时 |
QueryResponse | 面向响应调试的 SQL 列表 |
QueryLogger | SQL 日志记录 |
QuerySql | SQL 与绑定参数格式化 |
ApiResponse 的 debug 输出会读取 QueryMonitor。
Scramble 扩展
Scramble 相关类位于 Pin\Scramble:
ScrambleServiceProviderCreatedUpdatedDeletedSelectOptionTypeToSchemaExtensions\ResponseTypeToSchema
它们用于 API 文档响应结构和常见操作结果的 schema 表达。