route-usage

Log what routes were used and when. Easily figure out if one hasn't been called in a long time (and delete it! ?)

  • 所有者: julienbourdeau/route-usage
  • 平台:
  • 許可證: MIT License
  • 分類:
  • 主題:
  • 喜歡:
    0
      比較:

Github星跟蹤圖

Route Usage for Laravel

Latest Version on Packagist
Build Status

This package keeps track of all requests to know what controller method, and when it was called. The goal is not to build some sort of analytics but to find out if there are unused endpoints or controller method.

After a few years, any projects have dead code and unused endpoint. Typically, you removed a link on your frontend, nothing ever links to that old /special-page. You want to remove it, but you're not sure.
Have look at the route_usage table and figure out when this page was accessed for the last time. Last week? Better keep it for now. 3 years ago? REMOVE THE CODE! ?

Installation

You can install the package via composer:

composer require julienbourdeau/route-usage

Run migrations to create the new route_usage table.

php artisan migrate

Publish configuration

php artisan vendor:publish --provider="Julienbourdeau\RouteUsage\RouteUsageServiceProvider"

Usage

To access the route usage, you can do it in your terminal with the command.

php artisan usage:route

To access the HTML table, you'll first need to define who can access it. By default,
it's available only on local environment.

In your AuthServiceProvide, in the boot method, define who can access this page:

Gate::define('viewRouteUsage', function ($user) {
    return $user->isSuperAdmin();
});

Then, head over to yourapp.tld/route-usage.

Configuration

excluding-regex

Here you may specify regex to exclude routes from being logged.
Typically, you want may want to exclude routes from packages or dev controllers.
The value must be a valid regex or anything falsy.

Notes

  • I only logs request with a 2xx or 3xx HTTP response. I don't think the rest makes sense. Your opinion is welcome!
  • In the very first version, I was incrementing a count attribute. I removed it because I think it gives a wrong information. If it was used a lot because but last access was a year ago, it gives a false sense of importance to this unused route.

Road to 1.0 release

Less SQL queries

I'll like to reduce the number of SQL queries performed. Typically, if a route
is called, we don't need to log usage for the next 5 minutes. I'm thinking we could
use some cache or split the data: attributes in mysql but last used date in Redis.

? Feel free to open an issue to discuss your ideas.

More package to ignore

Today, we ignore routes from Nova or Debugbar because there is nothing you can
do about these routes. I'd like to support more packages out of the box.

? What package would you like to see added?

About

Changelog

Please see CHANGELOG for more information what has changed recently.

Contributing

Please see CONTRIBUTING for details.

Security

If you discover any security related issues, please email julien@sigerr.org instead of using the issue tracker.

Credits

Laravel Package Boilerplate

This package was generated using the Laravel Package Boilerplate.

License

The MIT License (MIT). Please see License File for more information.

主要指標

概覽
名稱與所有者julienbourdeau/route-usage
主編程語言PHP
編程語言PHP (語言數: 2)
平台
許可證MIT License
所有者活动
創建於2019-10-15 22:26:07
推送於2021-07-17 11:32:47
最后一次提交2021-07-17 13:13:11
發布數6
最新版本名稱0.5 (發布於 )
第一版名稱0.1 (發布於 )
用户参与
星數276
關注者數4
派生數15
提交數57
已啟用問題?
問題數9
打開的問題數1
拉請求數13
打開的拉請求數0
關閉的拉請求數4
项目设置
已啟用Wiki?
已存檔?
是復刻?
已鎖定?
是鏡像?
是私有?