jeffersongoncalves/filament-plugin-core

Shared base classes and helpers for jeffersongoncalves Filament plugins (Plugin skeleton, PackageServiceProvider helpers, render-hook registration).

Maintainers

Package info

github.com/jeffersongoncalves/filament-plugin-core

pkg:composer/jeffersongoncalves/filament-plugin-core

Fund package maintenance!

jeffersongoncalves

Statistics

Installs: 79

Dependents: 3

Suggesters: 0

Stars: 1

Open Issues: 0

3.0.1 2026-06-23 22:30 UTC

This package is auto-updated.

Last update: 2026-06-23 22:35:19 UTC


README

Filament Plugin Core

Filament Plugin Core

Latest Version on Packagist GitHub Code Style Action Status Total Downloads License

Shared base classes for the jeffersongoncalves family of Filament plugins. It removes the skeleton boilerplate every plugin used to copy-paste: the Plugin contract implementation, the Spatie PackageServiceProvider wiring, and Filament render-hook registration.

Version Compatibility

Branch Filament PHP Laravel
1.x 3.x ^8.2 ^11.0
2.x 4.x ^8.2 ^11.0
3.x 5.x ^8.2 ^11.0

Requirements

  • PHP 8.2 or higher
  • Laravel 11.0 or higher
  • Filament 5.x (3.x branch)

Installation

You can install the package via composer:

composer require jeffersongoncalves/filament-plugin-core:"^3.0"

What it provides

  • BasePlugin — implements Filament\Contracts\Plugin with the canonical make()/get() factory pair and no-op register()/boot(). Subclasses only declare getId().
  • Concerns\InteractsWithPlugin — the make()/get() pair as a standalone trait, for plugins that cannot extend BasePlugin.
  • BasePackageServiceProvider — extends Spatie's PackageServiceProvider and adds registerRenderHooks([$hook => $view]) to collapse render-hook closures.

Usage

Plugin

use JeffersonGoncalves\FilamentPluginCore\BasePlugin;

class MyPlugin extends BasePlugin
{
    public function getId(): string
    {
        return 'my-plugin';
    }
}

Service Provider

use Filament\View\PanelsRenderHook;
use JeffersonGoncalves\FilamentPluginCore\BasePackageServiceProvider;
use Spatie\LaravelPackageTools\Package;

class MyServiceProvider extends BasePackageServiceProvider
{
    public function configurePackage(Package $package): void
    {
        $package->name('my-plugin')->hasTranslations();
    }

    public function packageRegistered(): void
    {
        $this->registerRenderHooks([
            PanelsRenderHook::HEAD_START => 'my-plugin::script',
        ]);
    }
}

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.