bezhanSalleh / filament-exceptions

A Simple & Beautiful Pluggable Exception Viewer for FilamentPHP's Admin Panel
MIT License
152 stars 22 forks source link
exception-reporter exception-viewer filamentadmin filamentphp laravel plugin

filament-exceptions-art

FILAMENT 8.x Packagist Tests Passing Code Style Passing Downloads

Filament Exception Viewer

A Simple & Beautiful Exception Viewer for FilamentPHP's Admin Panel

Installation

  1. You can install the package via composer:
composer require bezhansalleh/filament-exceptions
  1. Publish and run the migration via:

    php artisan exceptions:install
  2. Register the plugin for the Filament Panel

    public function panel(Panel $panel): Panel
    {
    return $panel
        ->plugins([
            \BezhanSalleh\FilamentExceptions\FilamentExceptionsPlugin::make()
        ]);
    }
  3. Activate the plugin by editing your App's Exception Handler as follow:

<?php

namespace App\Exceptions;

use BezhanSalleh\FilamentExceptions\FilamentExceptions;

class Handler extends ExceptionHandler
{
    ...

    public function register()
    {
        $this->reportable(function (Throwable $e) {
            if ($this->shouldReport($e)) {
                FilamentExceptions::report($e);
            }
        });

        ...
    }

Configuration

The configuration file filament-exceptions.php is automatically published into your config directory.

The config file provides you with multiple options to customize the plugin.

Mass Pruning

By default Filament Exceptions is configured to prune exceptions older than 1 week.

To modify how long you'd like to store records for you can supply a Carbon object like so

'period' => now()->subWeek(), // 1 week
'period' => now()->subDay(), // 1 day
'period' => now()->subDays(3), // 3 days

Note This requires laravel scheduler to be setup and configured in order to work. You can see how to do that here Running The Scheduler

Custom Exception Model

For those who need to change the model this is possible using the configuration file.

    'exception_model' => Exception::class,

When creating your new exception model you should extend the default model

<?php

namespace App\Models;

use BezhanSalleh\FilamentExceptions\Models\Exception as BaseException;

class Exception extends BaseException
{

}

Theme

By default the plugin uses the default theme of Filamentphp, but if you are using a custom theme then include the plugins view path into the content array of your tailwind.config.js file:

export default {
    content: [
        // ...
        './vendor/bezhansalleh/filament-exceptions/resources/views/**/*.blade.php', // Language Switch Views
    ],
    // ...
}

Translations

Publish the translations with

php artisan vendor:publish --tag=filament-exceptions-translations

Testing

composer test

Changelog

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

Contributing

Please see CONTRIBUTING for details.

Security Vulnerabilities

Please review our security policy on how to report security vulnerabilities.

Credits

License

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