Tracker
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/trackerphp artisan migratephp 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 trackingTRACKER_ROUTE_PREFIX- set tracked route prefixTRACKER_CONNECTION- database connection, by defaultsqlite
You can also use facade to configure tracker.
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 routesTable track_routes sample rows
| id | user_id | path | full_path | method | extra | created_at | updated_at |
|---|---|---|---|---|---|---|---|
| 1 | 2 | /api/admin/example-1 | /api/admin/example-1?key=value | GET | NULL | 2022-04-14 08:49:25 | 2022-04-14 08:49:25 |
| 2 | 33 | /api/admin/example-2 | /api/admin/example-2 | POST | NULL | 2022-04-14 08:49:25 | 2022-04-14 08:49:25 |
Endpoints
Tests
Run ./vendor/bin/phpunit to run tests. See tests folder as it's quite good staring point as documentation appendix.
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.sqlitefile 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:clearorphp artisan cache:clearcommand. 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.