julienbourdeau / route-usage
记录路由的使用情况和时间。轻松地确定某个路由是否已经很久没有被调用(然后删除它!🥳)
Requires
- php: >= 7.1
- laravel/framework: >= 5.8
Requires (Dev)
- orchestra/testbench: 3.8.*
- phpunit/phpunit: ^7.0
README
此包跟踪所有请求,以了解控制器方法是什么以及何时被调用。目标是不要构建某种分析,而是要找出是否有未使用的端点或控制器方法。
几年后,任何项目都会有死代码和未使用的端点。通常,你从前端删除了一个链接,没有任何东西链接到那个旧的/special-page
。你想删除它,但又不确定。看看route_usage
表,看看这个页面最后一次访问是什么时候。上周?最好先保留它。三年前?删除代码!🥳
安装
您可以通过composer安装此包
composer require julienbourdeau/route-usage
运行迁移以创建新的route_usage
表。
php artisan migrate
发布配置
php artisan vendor:publish --provider="Julienbourdeau\RouteUsage\RouteUsageServiceProvider"
使用方法
要访问路由使用情况,您可以在终端中使用以下命令。
php artisan usage:route
要访问HTML表,您首先需要定义谁可以访问它。默认情况下,它仅在local
环境中可用。
在您的AuthServiceProvide
中的boot
方法中,定义谁可以访问此页面
Gate::define('viewRouteUsage', function ($user) { return $user->isSuperAdmin(); });
然后,前往yourapp.tld/route-usage
。
配置
excluding-regex
在这里,您可以指定正则表达式以排除要记录的路由。通常,您可能想要排除来自包或开发控制器的路由。值必须是有效的正则表达式或任何虚假值。
注意
- 我只记录2xx或3xx HTTP响应的请求。我认为其他都不合理。欢迎您的意见!
- 在最初的版本中,我正在增加一个
count
属性。我删除了它,因为我认为它会提供错误的信息。如果它被大量使用,但最后访问是在一年前,它会给这个未使用的路由一个错误的重要性感觉。
通往1.0版本的道路
减少SQL查询
我想减少执行的SQL查询数量。通常,如果路由被调用,我们不需要在接下来的5分钟内记录使用情况。我在想我们可以使用一些缓存或将数据拆分:MySQL中的属性但最后使用日期在Redis中。
💡 欢迎提出问题来讨论您的想法。
更多要忽略的包
今天,我们忽略了来自Nova或Debugbar的路由,因为这些路由无能为力。我想支持更多开箱即用的包。
📦 您想看到哪些包被添加?
关于
变更日志
请参阅CHANGELOG以获取有关最近更改的更多信息。
贡献
请参阅CONTRIBUTING以获取详细信息。
安全
如果您发现任何与安全相关的问题,请通过电子邮件julien@sigerr.org而不是使用问题跟踪器。
鸣谢
Laravel Package Boilerplate
此包是使用Laravel Package Boilerplate生成的。
许可证
MIT 许可证 (MIT)。请参阅 许可证文件 获取更多信息。