Laravel-Backpack / basset

Better asset helpers for Laravel apps.
MIT License
155 stars 11 forks source link

[FEATURE] Added BassetCachedEvent #92

Closed promatik closed 6 months ago

promatik commented 1 year ago

Fix for https://github.com/Laravel-Backpack/basset/issues/65.

This will make basset trigger an event every time an asset is cached, that should happen only one time per asset 👌

It will allow developer to listen for the event;

class EventServiceProvider extends ServiceProvider
{
    protected $listen = [
        BassetCachedEvent::class => [
            BassetCachedEventListener::class,
        ],
    ];

and do whatever magic they need 👌

namespace App\Listeners;

use Backpack\Basset\Events\BassetCachedEvent;
use Illuminate\Support\Facades\Log;

class BassetCachedEventListener
{
    public function handle(BassetCachedEvent $event): void
    {
        $url = app('basset')->getUrl($event->asset);

        Log::info("$event->asset file was cached, its url is $url.");
    }
}