Your users do not always report errors, LaraBug does. LaraBug is a simple to use and implement error tracker built for the Laravel framework.

Overview

Your users do not always report errors, LaraBug does. LaraBug is a simple to use and implement error tracker built for the Laravel framework.

This repository contains the actual code on https://www.larabug.com

Requirements

  • PHP 8.0 or higher
  • Git
  • Composer
  • MySQL (>=5.7) or PostgreSQL (>=9.4)

Installation

git clone https://github.com/LaraBug/larabug-app.git
composer install

npm i
npm run watch
# or
npm run dev

Configure your database in the .env file and then run:

php artisan migrate

Important to know

This project is created by me back in 2016, it is very old, and the code doesn't even look remotely to what I code now. The point here is that there are no tests, and some stuff might look cumbersome, however the code works beautifully and like intented. You're more than welcome to clean code and generalize stuff better.

Testing

./vendor/bin/phpunit tests

Changelog

Please see CHANGELOG for more information on what has changed recently.

Contributing

Please see CONTRIBUTING for details.

Sponsor

We appreciate sponsors, we still maintain this repository, server, emails and domain. You can do that here. Each sponsor gets listed on the LaraBug sponsor page and when chosen the right tier you will be listed as official sponsor.

Credits

License

The GPL-3.0 License (GPL-3.0). Please see License File for more information.

Comments
  • Added toggle to disable notifications on project

    Added toggle to disable notifications on project

    • Added headless ui.
    • Added toggle to disable notifications on project.
    • Updated new and edit layout of project.

    New project: image

    Edit project: image

    When notification toggle is off: image

    opened by ricklambrechts 16
  • No request body for custom webhooks

    No request body for custom webhooks

    I'm having problems setting up a custom notification webhook.

    When using the custom webhook, the endpoint is called but it doesn't receive this data defined for the WebhookMessage class: https://github.com/LaraBug/larabug-app/blob/f608eab3a36c1c9679c1feb9683ca0afe01dce05/app/Notifications/ExceptionWasCreated.php#L144-L153 The request body is just empty.

    Also, while the custom user-agent is applied, the request is missing a "Content-Type" header, but tries to send json encoded content.

    https://github.com/LaraBug/larabug-app/blob/f608eab3a36c1c9679c1feb9683ca0afe01dce05/app/Notifications/CustomWebhook/WebhookChannel.php#L43

    When adding the Content-Type: application/json header, the webhook request contains the required information.

    Is there something I'm missing, forgetting or doing wrong in my setup? Because I don't understand how the current configuration with an empty "Content-Type" header and an empty request body could ever have worked.

    opened by lpheller 6
  • Minimal frontend

    Minimal frontend

    Some users like to install their own version of LaraBug. This PR should make the app feel a bit more of an app as it disables some unnecessary pages / links. CleanShot 2021-05-05 at 00 14 36@2x

    CleanShot 2021-05-05 at 00 11

    opened by SebastiaanKloos 5
  • [Idea] Extract a laravel package for the application

    [Idea] Extract a laravel package for the application

    This project is awesome and it would be much better if it was possible to install the admin panel as a stand-alone laravel package so that the main website of 'larabug.com' will not be included for those who prefer to run their private bug catcher.

    I can do it if you agree.

    opened by imanghafoori1 4
  • Performance for posting exceptions

    Performance for posting exceptions

    As an exception gets sent to the application the corresponding controller uses dispatch_sync which does not push a job to the queue. I think it should just be dispatch. If you agree I am going to open a PR for it.

    https://github.com/LaraBug/larabug-app/blob/3da84141bbf3f99880e2a9c1af98de0ee12fc61d/app/Http/Controllers/Api/ApiController.php#L41

    opened by Wulfheart 4
  • [Idea] Breadcrumbs

    [Idea] Breadcrumbs

    Sentry for instance has breadcrumbs where important events are logged. I think this would be a nice addition to larabug. Would you be willing to merge a PR implementing this?

    image

    opened by Wulfheart 4
  • feature: Basic issue functionality with better occurrences for exceptions

    feature: Basic issue functionality with better occurrences for exceptions

    I've added some basic logic for issues. You can test it by using the updated test command and run it a couple of times:

    php artisan larabug:test "Test new issues feature #1"
    

    CleanShot 2022-06-24 at 00 39 52@2x

    CleanShot 2022-06-24 at 00 40 03@2x

    There are still a few small things I would like to add:

    • [x] Reference to issue from exception
    • [x] Notifications / notification rules in projects for issues

    What do you think about this feature? Any feedback is welcome!

    opened by SebastiaanKloos 3
  • [Idea] Grouping of similar exceptions

    [Idea] Grouping of similar exceptions

    The last idea for today. πŸ˜‰ What about grouping exceptions which are the same? E.g. if an exception has the same stack trace and text then it is most probably the same exception with a slightly different context. I could add a occurence selector to the site for example left to the environment context: image

    opened by Wulfheart 3
  • Convert PHPunit to Pestphp test suites

    Convert PHPunit to Pestphp test suites

    Convert PHPunit to Pestphp, and use expect api Use LazilyRefreshDatabase instead of RefreshDatabase Add .gitkeep to folder Unit, to prevent unusualy error when running test suites

    Screenshot from 2021-10-16 00-13-39

    opened by lloricode 3
  • Fix javascript exception

    Fix javascript exception

    We have an Javascript exception, and it seems there no value of it, so fix is by adding this

    $exception->executor[0]['line_number'] ?? null 
    

    Screenshot from 2021-06-04 17-40-30 Screenshot from 2021-06-04 17-40-14

    then this is the result when viewing share Screenshot from 2021-06-04 17-42-42

    Thank you

    opened by lloricode 3
  • SQLSTATE[42883]: Undefined function: 7 ERROR:  function sum(character varying) does not exist

    SQLSTATE[42883]: Undefined function: 7 ERROR: function sum(character varying) does not exist

    I'm using larabug with PostgreSQL 14.1. Seems like sum() on string columns without type casting is not supported.

    Log:

    [2022-06-01 16:52:59] production.ERROR: SQLSTATE[42883]: Undefined function: 7 ERROR:  function sum(character varying) does not exist
    LINE 1: select sum("total_exceptions") as aggregate from "projects" ...
                   ^
    HINT:  No function matches the given name and argument types. You might need to add explicit type casts. (SQL: select sum("total_exceptions") as aggregate from "projects" inner join "project_user" on "projects"."id" = "project_user"."project_id" where "project_user"."user_id" = 1) {"userId":1,"exception":"[object] (Illuminate\\Database\\QueryException(code: 42883): SQLSTATE[42883]: Undefined function: 7 ERROR:  function sum(character varying) does not exist
    LINE 1: select sum(\"total_exceptions\") as aggregate from \"projects\" ...
                   ^
    HINT:  No function matches the given name and argument types. You might need to add explicit type casts. (SQL: select sum(\"total_exceptions\") as aggregate from \"projects\" inner join \"project_user\" on \"projects\".\"id\" = \"project_user\".\"project_id\" where \"project_user\".\"user_id\" = 1) at /var/www/html/vendor/laravel/framework/src/Illuminate/Database/Connection.php:716)
    [stacktrace]
    #0 /var/www/html/vendor/laravel/framework/src/Illuminate/Database/Connection.php(676): Illuminate\\Database\\Connection->runQueryCallback()
    #1 /var/www/html/vendor/laravel/framework/src/Illuminate/Database/Connection.php(376): Illuminate\\Database\\Connection->run()
    #2 /var/www/html/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(2556): Illuminate\\Database\\Connection->select()
    #3 /var/www/html/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(2544): Illuminate\\Database\\Query\\Builder->runSelect()
    #4 /var/www/html/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(3078): Illuminate\\Database\\Query\\Builder->Illuminate\\Database\\Query\\{closure}()
    #5 /var/www/html/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(2545): Illuminate\\Database\\Query\\Builder->onceWithColumns()
    #6 /var/www/html/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(3005): Illuminate\\Database\\Query\\Builder->get()
    #7 /var/www/html/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(2966): Illuminate\\Database\\Query\\Builder->aggregate()
    #8 /var/www/html/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Builder.php(1707): Illuminate\\Database\\Query\\Builder->sum()
    #9 /var/www/html/vendor/laravel/framework/src/Illuminate/Support/Traits/ForwardsCalls.php(23): Illuminate\\Database\\Eloquent\\Builder->__call()
    #10 /var/www/html/vendor/laravel/framework/src/Illuminate/Support/Traits/ForwardsCalls.php(52): Illuminate\\Database\\Eloquent\\Relations\\Relation->forwardCallTo()
    #11 /var/www/html/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Relations/Relation.php(493): Illuminate\\Database\\Eloquent\\Relations\\Relation->forwardDecoratedCallTo()
    #12 /var/www/html/app/Http/Controllers/HomeController.php(31): Illuminate\\Database\\Eloquent\\Relations\\Relation->__call()
    #13 /var/www/html/vendor/laravel/framework/src/Illuminate/Routing/Controller.php(54): App\\Http\\Controllers\\HomeController->index()
    #14 /var/www/html/vendor/laravel/framework/src/Illuminate/Routing/ControllerDispatcher.php(45): Illuminate\\Routing\\Controller->callAction()
    #15 /var/www/html/vendor/laravel/framework/src/Illuminate/Routing/Route.php(261): Illuminate\\Routing\\ControllerDispatcher->dispatch()
    #16 /var/www/html/vendor/laravel/framework/src/Illuminate/Routing/Route.php(204): Illuminate\\Routing\\Route->runController()
    #17 /var/www/html/vendor/laravel/framework/src/Illuminate/Routing/Router.php(725): Illuminate\\Routing\\Route->run()
    #18 /var/www/html/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(141): Illuminate\\Routing\\Router->Illuminate\\Routing\\{closure}()
    #19 /var/www/html/vendor/inertiajs/inertia-laravel/src/Middleware.php(88): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}()
    #20 /var/www/html/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(180): Inertia\\Middleware->handle()
    #21 /var/www/html/vendor/laravel/framework/src/Illuminate/Routing/Middleware/SubstituteBindings.php(50): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}()
    #22 /var/www/html/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(180): Illuminate\\Routing\\Middleware\\SubstituteBindings->handle()
    #23 /var/www/html/vendor/laravel/framework/src/Illuminate/Auth/Middleware/Authenticate.php(44): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}()
    #24 /var/www/html/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(180): Illuminate\\Auth\\Middleware\\Authenticate->handle()
    #25 /var/www/html/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/VerifyCsrfToken.php(78): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}()
    #26 /var/www/html/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(180): Illuminate\\Foundation\\Http\\Middleware\\VerifyCsrfToken->handle()
    #27 /var/www/html/vendor/laravel/framework/src/Illuminate/View/Middleware/ShareErrorsFromSession.php(49): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}()
    #28 /var/www/html/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(180): Illuminate\\View\\Middleware\\ShareErrorsFromSession->handle()
    #29 /var/www/html/vendor/laravel/framework/src/Illuminate/Session/Middleware/StartSession.php(121): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}()
    #30 /var/www/html/vendor/laravel/framework/src/Illuminate/Session/Middleware/StartSession.php(64): Illuminate\\Session\\Middleware\\StartSession->handleStatefulRequest()
    #31 /var/www/html/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(180): Illuminate\\Session\\Middleware\\StartSession->handle()
    #32 /var/www/html/vendor/laravel/framework/src/Illuminate/Cookie/Middleware/AddQueuedCookiesToResponse.php(37): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}()
    #33 /var/www/html/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(180): Illuminate\\Cookie\\Middleware\\AddQueuedCookiesToResponse->handle()
    #34 /var/www/html/vendor/laravel/framework/src/Illuminate/Cookie/Middleware/EncryptCookies.php(67): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}()
    #35 /var/www/html/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(180): Illuminate\\Cookie\\Middleware\\EncryptCookies->handle()
    #36 /var/www/html/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(116): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}()
    #37 /var/www/html/vendor/laravel/framework/src/Illuminate/Routing/Router.php(727): Illuminate\\Pipeline\\Pipeline->then()
    #38 /var/www/html/vendor/laravel/framework/src/Illuminate/Routing/Router.php(702): Illuminate\\Routing\\Router->runRouteWithinStack()
    #39 /var/www/html/vendor/laravel/framework/src/Illuminate/Routing/Router.php(666): Illuminate\\Routing\\Router->runRoute()
    #40 /var/www/html/vendor/laravel/framework/src/Illuminate/Routing/Router.php(655): Illuminate\\Routing\\Router->dispatchToRoute()
    #41 /var/www/html/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(167): Illuminate\\Routing\\Router->dispatch()
    #42 /var/www/html/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(141): Illuminate\\Foundation\\Http\\Kernel->Illuminate\\Foundation\\Http\\{closure}()
    #43 /var/www/html/vendor/livewire/livewire/src/DisableBrowserCache.php(19): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}()
    #44 /var/www/html/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(180): Livewire\\DisableBrowserCache->handle()
    #45 /var/www/html/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TransformsRequest.php(21): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}()
    #46 /var/www/html/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/ConvertEmptyStringsToNull.php(31): Illuminate\\Foundation\\Http\\Middleware\\TransformsRequest->handle()
    #47 /var/www/html/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(180): Illuminate\\Foundation\\Http\\Middleware\\ConvertEmptyStringsToNull->handle()
    #48 /var/www/html/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TransformsRequest.php(21): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}()
    #49 /var/www/html/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TrimStrings.php(40): Illuminate\\Foundation\\Http\\Middleware\\TransformsRequest->handle()
    #50 /var/www/html/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(180): Illuminate\\Foundation\\Http\\Middleware\\TrimStrings->handle()
    #51 /var/www/html/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/ValidatePostSize.php(27): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}()
    #52 /var/www/html/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(180): Illuminate\\Foundation\\Http\\Middleware\\ValidatePostSize->handle()
    #53 /var/www/html/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/PreventRequestsDuringMaintenance.php(86): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}()
    #54 /var/www/html/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(180): Illuminate\\Foundation\\Http\\Middleware\\PreventRequestsDuringMaintenance->handle()
    #55 /var/www/html/vendor/laravel/framework/src/Illuminate/Http/Middleware/HandleCors.php(49): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}()
    #56 /var/www/html/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(180): Illuminate\\Http\\Middleware\\HandleCors->handle()
    #57 /var/www/html/vendor/laravel/framework/src/Illuminate/Http/Middleware/TrustProxies.php(39): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}()
    #58 /var/www/html/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(180): Illuminate\\Http\\Middleware\\TrustProxies->handle()
    #59 /var/www/html/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(116): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}()
    #60 /var/www/html/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(142): Illuminate\\Pipeline\\Pipeline->then()
    #61 /var/www/html/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(111): Illuminate\\Foundation\\Http\\Kernel->sendRequestThroughRouter()
    #62 /var/www/html/public/index.php(55): Illuminate\\Foundation\\Http\\Kernel->handle()
    #63 {main}
    
    opened by balthild 2
  • Multi-User

    Multi-User

    Firstly: Thanks a lot for this absolute great product! It's amazingly easy to use and so helpful! Is it possible to add another developer to my projects? Or will this feature be built any time soon?

    opened by cwbsl 4
  • Install laravel-microscope as a dev dependency

    Install laravel-microscope as a dev dependency

    Many of the errors and dead project parts I just tackled were discovered by the laravel-microscope, I recommend having it as your assistant to speed things up and have a birds-eye view of your project. just run php artisan check:all after the installation of the microscope and see what happens.

    opened by imanghafoori1 6
  • ✨ Add Telegram notification channel

    ✨ Add Telegram notification channel

    This PR will add notifications through Telegram. It's inspired from Flare. To start using this feature, you'll need to create a Telegram bot then add the token to the environment variables TELEGRAM_BOT_TOKEN, TELEGRAM_BOT_HANDLE and TELEGRAM_CERTIFICATE_PATH.

    Then to receive updates from Telegram, you need to register your webhook using the command:

    $ php artisan telegram:webhook mybot --setup 
    

    Note: To enable the webhook to work correctly, you need to exclude the URL from CSRF verification in VerifyCsrfToken middleware

    opened by HajMo 13
Owner
LaraBug
Laravel Error Tracker
LaraBug
This is a simple Expense Tracker app.

Expense Tracker This is a simple Expense Tracker app build with Filament Admin (TALL Stack). Demo hosted on Heroku Demo Filament Expense Tracker Featu

Mohsin Shaikh 14 Dec 9, 2022
Laravel Stats Tracker

Laravel Stats Tracker Tracker gathers a lot of information from your requests to identify and store: Sessions Page Views (hits on routes) Users (logge

Antonio Carlos Ribeiro 2.8k Jan 2, 2023
The best squirrel tracker. Ever. (A demo app for LaravelSF meetups)

LaraSqrrl Identify and track squirrels via text, now using AWS Rekognition! Created for the November 10th, 2015; February 9th, 2016; May 10th, 2016; a

Paul Foryt 3 Mar 29, 2022
Attendance Tracker & Management System

Attendance Tracker & Management System Technologies used: HTML5, CSS3, PHP and MySQL. Project Description Attendance Tracker could be an award-winning

Saurabh Kishor 1 Oct 29, 2022
Laravel Users | A Laravel Users CRUD Management Package

A Users Management Package that includes all necessary routes, views, models, and controllers for a user management dashboard and associated pages for managing Laravels built in user scaffolding. Built for Laravel 5.2, 5.3, 5.4, 5.5, 5.6, 5.7, 5.8, 6.0, 7.0 and 8.0.

Jeremy Kenedy 393 Nov 28, 2022
Laravel 4.* and 5.* service providers to handle PHP errors, dump variables, execute PHP code remotely in Google Chrome

Laravel 4.* service provider for PHP Console See https://github.com/barbushin/php-console-laravel/releases/tag/1.2.1 Use "php-console/laravel-service-

Sergey 73 Jun 1, 2022
Laravel User Activity Log - a package for Laravel 8.x that provides easy to use features to log the activities of the users of your Laravel app

Laravel User Activity Log - a package for Laravel 8.x that provides easy to use features to log the activities of the users of your Laravel app

null 9 Dec 14, 2022
Send PHP errors to Flare

Send PHP errors to Flare This repository contains a PHP client to send PHP errors to Flare. Documentation You can find the documentation of this packa

Spatie 64 Dec 26, 2022
PHP 7 Migration Assistant Report (MAR)

Introduction What is PHP 7 Migration Assistant Report(MAR)? PHP 7 MAR, or just "php7mar", is a command line utility to generate reports on existing PH

Alexia E. Smith 790 Dec 8, 2022
Vandar Cashier is a Laravel package that allows you to seamlessly implement IPG and Direct Debit on your application

Vandar Cashier is a Laravel package that provides you with a seamless integration with Vandar services. Take a look at Vandar Documentation for more i

Vandar 11 Dec 14, 2022
Filament Plugin to help implement Cloudflare turnstile into your forms.

Filament Turnstile Filament Turnstile, is a plugin to help you implement the Cloudflare turnstile. This plugin uses Laravel Turnstile Behind the scene

Coderflex 5 Jun 12, 2023
Ignition: a beautiful error page for Laravel apps

Ignition is a beautiful and customizable error page for Laravel applications running on Laravel 5.5 and newer. It is the default error page for all Laravel 6 applications.

Spatie 260 Dec 29, 2022
Provides a powerful error response system for Laravel

Laravel Exceptions Laravel Exceptions was created by, and is maintained by Graham Campbell, and provides a powerful error response system for both dev

Graham Campbell 571 Jan 31, 2022
laravel package help you to implement geographical calculation, with several algorithms that help you deal with coordinates and distances.

Geographical Calculator Geographical Calculator was developed for laravel 5.8+ to help you to implement geographical calculation, with With several al

karam mustafa 342 Dec 31, 2022
A lightweight package for handling API error responses.

Laravel API Errors This package provides an easy way to manage and handle error response for JSON API's. Installation You can install the package via

3 SIDED CUBE 2 Feb 9, 2022
Laminas\Console is a component to design and implement console applications in PHP.

laminas-console This package is abandoned and will receive no further development! We recommend using laminas/laminas-cli. Laminas\Console is a compon

Laminas Project 10 Nov 27, 2021
A package to implement repository pattern for laravel models

Laravel Model UUID A simple package to use Repository Pattern approach for laravel models . Repository pattern Repositories are classes or components

null 26 Dec 21, 2022
A Laravel 8 Project Implement with GraphQL With Sanctum APIs Authentications Which utilized in Any Frontend or Any Mobile Application Programs.

A Laravel 8 Project Implement with GraphQL With Sanctum APIs Authentications Which utilized in Any Frontend or Any Mobile Application Programs.

Vikas Ukani 3 Jan 6, 2022
πŸ•΅πŸ»β€β™‚οΈ Β The easiest way to respect the "do not track" header in Laravel

trackable The easiest way to respect the "do not track" header in Laravel Installation composer require s360digital/trackable API Trackable will expos

s360 2 Oct 7, 2022