web-debug / core
该包已被废弃且不再维护。未建议替代包。
HTTP Web 调试协议的实现(核心库)
dev-master
2019-04-05 08:44 UTC
Requires
- php: >=7.2
- ext-json: *
- psr/simple-cache: ~1.0
- ramsey/collection: ^1.0
- ramsey/uuid: ^3.8
- str/str: ^1.1
Requires (Dev)
- friendsofphp/php-cs-fixer: ^2.14
- phpstan/phpstan: ^0.11.2
- phpunit/phpunit: ^7
- symfony/cache: *
- symfony/var-dumper: *
Suggests
- symfony/cache: Use any psr-6/16 compatible cache for persisted storage
This package is auto-updated.
Last update: 2023-04-05 18:16:34 UTC
README
这是官方PHP核心库,实现了https://web-debug.dev/的服务端实现
您应使用它来为其他框架和CMS的级别1捆绑包/模块。
安装
$ composer require web-debug/core
支持的方案版本
| 版本 | 是否支持? |
|---|---|
| 1 | 是 |
如何使用
use WebDebug\Builders\Events\EventLog; use WebDebug\Builders\Types\TypeTagMultipart; use WebDebug\Profiler; // use any psr-6/psr-16 cache for persistent storage $cache = new Symfony\Component\Cache\Simple\FilesystemCache('cache', 60, 'cache'); // make new profiler storage object $profiler = new Profiler( version: Profiler::VERSION_1, storage: $cache, isProduction: false ); // create some events $log = new EventLog('Hello world'); $log->context = [ 'something' => 123 ]; $log->tags->add(new TypeTagMultipart('name', 'value_for_filter')); $log->tags->add(new TypeTagMultipart('component', 'kernel')); // add events to scheme $profiler->addEvent($log); $profiler->addEvent(new EventLog('Another message')); $profiler->addEvent(new EventLog('And another')); // save generated json to storage $uuid = $profiler->push(); // bdb01adb-895b-4a8b-b1b3-bbd5aca237fe $json = $profiler->pop($uuid); // json for HTTP response
这将生成这里描述的有效方案:https://web-debug.dev/docs/scheme/
{
"id":"bdb01adb-895b-4a8b-b1b3-bbd5aca237fe",
"version":1,
"events":[
{
"type":"log",
"payload":{
"message":"Hello world",
"context":"{\"something\":123}"
},
"tags":[
"name:value_for_filter",
"component:kernel"
],
"importance":1,
"time":1554234913359,
"nested":[]
},
{
"type":"log",
"payload":{
"message":"Another message"
},
"tags":[],
"importance":1,
"time":1554234913447,
"nested":[]
},
{
"type":"log",
"payload":{
"message":"And another"
},
"tags":[],
"importance":1,
"time":1554234913506,
"nested":[]
}
]
}
在此查看可用事件列表
https://web-debug.dev/docs/scheme/events.html
如何获取HTTP传输的头部信息
https://web-debug.dev/docs/specification/transport/headers-request.html
此传输需要两个头部信息
X-Http-Debug-Id: ef95a542-25a3-4f71-a0e9-640c92f43813
X-Http-Debug-Api: /_profile/?id=
$profiler = new Profiler(..); $xHttpDebugId = $profiler->uuid; // ef95a542-25a3-4f71-a0e9-640c92f43813 $xHttpDebugApi = '<your api endpoint>';