File "MediaObserver.php"
Full Path: /home/clickysoft/public_html/jmapi5.clickysoft.net/vendor/spatie/laravel-medialibrary/src/MediaCollections/Models/Observers/MediaObserver.php
File size: 1.74 KB
MIME-type: text/x-php
Charset: utf-8
<?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);
}
}