virchow / virlumen-telescope
用于lumen的望远镜
dev-master
2021-06-16 04:05 UTC
Requires
- php: ^7.3|^8.0
This package is not auto-updated.
Last update: 2024-09-19 17:43:09 UTC
README
继承自laravel官方的laravel/telescope,为lumen做了简化处理
(由于个人能力有限,仅做了一些常用事件的处理)
与laravel/telescope的区别
- 由于lumen相对于laravel简化了很多,所以有一些laravel的事件,无法再直接监听,其中最主要的就是没有了对外提供的app()->terminating()方法,而laravel/telescope的数据入库确实是在这里处理的。所以不得已只能将这里的处理,分发到不同的地方处理
- 对于request请求,由于lumen没有RequestHandled的事件监听,所以放在了中间件来生成数据,并使用Terminable中间件来保存数据
- 对于command命令,修改了artisan脚本,同样使用terminate的方法,写入数据
使用方法
composer require virchow/virlumen-telescope
- 在
bootstrap/app.php
中,引入中间件和注册服务类... $app->middleware([ Virchow\VirlumenTelescope\Middleware\Telescope::class ]); ... $app->register(Virchow\VirlumenTelescope\Providers\TelescopeProdiver::class); ...
注意:由于默认监听了redis,所以在使用前,建议做好redis的注册,可以直接使用
illuminate/redis
- 使用lumen的config创建方法,创建telescope.config并注册
- 迁移数据库文件
如果需要监听command命令,需要修改
artisan
脚本,手动调用terminate方法,如下$kernel = $app->make( 'Illuminate\Contracts\Console\Kernel' ); // exit($kernel->handle(new ArgvInput, new ConsoleOutput)); $status = $kernel->handle($input = new ArgvInput, new ConsoleOutput); $kernel->terminate($input, $status); exit($status);
说明
- 由于我更多的是使用做api服务,所以将laravel/telescope的视图等服务全部移除了。为了能够查询到数据,我又使用laravel框架搭建了一个telescope的监测系统,能够添加多个项目的监测。详见https://gitee.com/weixuhui/telescope-dashboard.git