<?php namespace Spatie\MediaLibrary\MediaCollections\Models\Observers; use Spatie\MediaLibrary\Conversions\FileManipulator; use Spatie\MediaLibrary\MediaCollections\Filesystem; use Spatie\MediaLibrary\MediaCollections\Models\Media; class MediaObserver { public function creating(Media $media) { if ($media->shouldSortWhenCreating()) { if (is_null($media->order_column)) { $media->setHighestOrderNumber(); } } } public function updating(Media $media) { /** @var Filesystem $filesystem */ $filesystem = app(Filesystem::class); if (config('media-library.moves_media_on_update')) { $filesystem->syncMediaPath($media); } if ($media->file_name !== $media->getOriginal('file_name')) { $filesystem->syncFileNames($media); } } public function updated(Media $media) { if (is_null($media->getOriginal('model_id'))) { return; } $original = $media->getOriginal('manipulations'); if ($media->manipulations !== $original) { $eventDispatcher = Media::getEventDispatcher(); Media::unsetEventDispatcher(); /** @var FileManipulator $fileManipulator */ $fileManipulator = app(FileManipulator::class); $fileManipulator->createDerivedFiles($media); Media::setEventDispatcher($eventDispatcher); } } public function deleted(Media $media) { if (method_exists($media, 'isForceDeleting') && ! $media->isForceDeleting()) { return; } /** @var Filesystem $filesystem */ $filesystem = app(Filesystem::class); $filesystem->removeAllFiles($media); } }