Skip to content
On this page

Tracker

swaggercodecovphpunitdownloadsdownloadsdownloads

What does it do

The package is used to track the api route. Tracker is enabled by default and track routes with /api/admin prefix. By default, /api/admin/tracks/routes is ignored.

Installing

  • composer require escolalms/tracker
  • php artisan migrate
  • php artisan db:seed --class="EscolaLms\Tracker\Database\Seeders\TrackerPermissionSeeder"

Configuration

You can configure this package by specifying keys in the .env file.

  • TRACKER_ENABLED - enable or disable route tracking
  • TRACKER_ROUTE_PREFIX - set tracked route prefix
  • TRACKER_CONNECTION - database connection, by default sqlite

You can also use facade to configure tracker.

php
Tracker::disable();
Http::get('api/admin/example-route')
Tracker::enable();

... 

Tracker::ignoreUris(['api/admin/example-route']);
Http::get('api/admin/example-route')

... 

Tracker::prefix('api');
Http::get('api/example-route')

Database

TrackRoutes - stores tracked routes

Table track_routes sample rows

iduser_idpathfull_pathmethodextracreated_atupdated_at
12/api/admin/example-1/api/admin/example-1?key=valueGETNULL2022-04-14 08:49:252022-04-14 08:49:25
233/api/admin/example-2/api/admin/example-2POSTNULL2022-04-14 08:49:252022-04-14 08:49:25

Endpoints

swagger

Tests

Run ./vendor/bin/phpunit to run tests. See tests folder as it's quite good staring point as documentation appendix.

codecovphpunit

Permissions

Permissions are defined in seeder

Problems

  • No permission to write to the database:

    If you encounter such an error you need to check the permissions of the database.sqlite file on the server. If the file is not given write permissions, SQL will throw an error about not being able to write. The file should have at least 0666 permissions.

  • track_routes table not found:

    The error occurs because the migrations that create the tables have not been run. There is only an empty database file. You should run the php artisan oprimize:clear or php artisan cache:clear command. SqliteServiceProvider will check from the values in the cache whether migrations have been run and if the table does not exist it will create it in the database.