Skip to content

Use PHP 8 attributes to register eloquent model observers in a Laravel app

License

Notifications You must be signed in to change notification settings

thomascombe/laravel-observer-attributes

Repository files navigation

Social Card of Laravel Observer Attributes

Use PHP 8 attributes to register eloquent model observers in a Laravel app

Latest Version on Packagist Tests PHPCS check Total Downloads

Installation

You can install the package via composer:

composer require thomascombe/laravel-observer-attributes

You can publish the config file with:

php artisan vendor:publish --provider="Thomascombe\ObserverAttributes\ObserverAttributesServiceProvider" --tag="laravel-observer-attributes-config"

This is the contents of the published config file:

return [
    'directories' => [
        app_path('Models'),
    ],
];

Usage

Add single observer to model:

use App\Observers\UserObserver;

#[Observer(UserObserver::class)]
class User extends Authenticatable 
{

}

It's just like:

User::observe(UserObserver::class);

in EventServiceProvider


Add multiples observers to model:

use App\Observers\EntityObserver;
use App\Observers\UserObserver;

#[Observer(UserObserver::class, EntityObserver::class)]
class User extends Authenticatable 
{

}

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.

About

Use PHP 8 attributes to register eloquent model observers in a Laravel app

Resources

License

Security policy

Stars

Watchers

Forks

Packages

No packages published

Languages