julienbourdeau/route-usage

记录路由的使用情况和时间。轻松地确定某个路由是否已经很久没有被调用(然后删除它!🥳)

0.5 2021-07-17 11:13 UTC

This package is auto-updated.

Last update: 2024-09-17 17:52:15 UTC


README

Latest Version on Packagist Build Status

此包跟踪所有请求,以了解控制器方法是什么以及何时被调用。目标是不要构建某种分析,而是要找出是否有未使用的端点或控制器方法。

几年后,任何项目都会有死代码和未使用的端点。通常,你从前端删除了一个链接,没有任何东西链接到那个旧的/special-page。你想删除它,但又不确定。看看route_usage表,看看这个页面最后一次访问是什么时候。上周?最好先保留它。三年前?删除代码!🥳

/route-usage screenshot

php artisan usage:route screenshot

安装

您可以通过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)。请参阅 许可证文件 获取更多信息。