diff --git a/src/InteractsWithMedia.php b/src/InteractsWithMedia.php index c4ea9017d..bf1358038 100644 --- a/src/InteractsWithMedia.php +++ b/src/InteractsWithMedia.php @@ -27,6 +27,9 @@ use Spatie\MediaLibraryPro\PendingMediaLibraryRequestHandler; use Symfony\Component\HttpFoundation\File\UploadedFile; +/** + * @template TMedia of \Spatie\MediaLibrary\MediaCollections\Models\Media + */ trait InteractsWithMedia { /** @var Conversion[] */ @@ -57,7 +60,7 @@ public static function bootInteractsWithMedia(): void } /** - * @return MorphMany + * @return MorphMany */ public function media(): MorphMany { @@ -66,12 +69,17 @@ public function media(): MorphMany /** * Add a file to the media library. + * + * @return FileAdder */ public function addMedia(string|UploadedFile $file): FileAdder { return app(FileAdderFactory::class)->create($this, $file); } + /** + * @return FileAdder + */ public function addMediaFromRequest(string $key): FileAdder { return app(FileAdderFactory::class)->createFromRequest($this, $key); @@ -79,6 +87,8 @@ public function addMediaFromRequest(string $key): FileAdder /** * Add a file from the given disk. + * + * @return FileAdder */ public function addMediaFromDisk(string $key, ?string $disk = null): FileAdder { @@ -111,7 +121,7 @@ public function syncFromMediaLibraryRequest(?array $mediaLibraryRequestItems): P * Add multiple files from a request by keys. * * @param string[] $keys - * @return \Spatie\MediaLibrary\MediaCollections\FileAdder[] + * @return Collection> */ public function addMultipleMediaFromRequest(array $keys): Collection { @@ -121,7 +131,7 @@ public function addMultipleMediaFromRequest(array $keys): Collection /** * Add all files from a request. * - * @return \Spatie\MediaLibrary\MediaCollections\FileAdder[] + * @return Collection> */ public function addAllMediaFromRequest(): Collection { @@ -131,7 +141,7 @@ public function addAllMediaFromRequest(): Collection /** * Add a remote file to the media library. * - * + * @return FileAdder * * @throws \Spatie\MediaLibrary\MediaCollections\Exceptions\FileCannotBeAdded */ @@ -167,6 +177,7 @@ public function addMediaFromUrl(string $url, array|string ...$allowedMimeTypes): * Add a file to the media library that contains the given string. * * @param string string + * @return FileAdder */ public function addMediaFromString(string $text): FileAdder { @@ -184,6 +195,8 @@ public function addMediaFromString(string $text): FileAdder /** * Add a base64 encoded file to the media library. * + * @return FileAdder + * * @throws \Spatie\MediaLibrary\MediaCollections\Exceptions\FileCannotBeAdded * @throws InvalidBase64Data */ @@ -220,6 +233,8 @@ public function addMediaFromBase64(string $base64data, array|string ...$allowedM /** * Add a file to the media library from a stream. + * + * @return FileAdder */ public function addMediaFromStream($stream): FileAdder { @@ -236,6 +251,8 @@ public function addMediaFromStream($stream): FileAdder /** * Copy a file to the media library. + * + * @return FileAdder */ public function copyMedia(string|UploadedFile $file): FileAdder { @@ -252,6 +269,8 @@ public function hasMedia(string $collectionName = 'default', array|callable $fil /** * Get media collection by its collectionName. + * + * @return MediaCollections\Models\Collections\MediaCollection */ public function getMedia(string $collectionName = 'default', array|callable $filters = []): MediaCollections\Models\Collections\MediaCollection { @@ -270,6 +289,9 @@ public function getMediaModel(): string return config('media-library.media_model'); } + /** + * @return TMedia|null + */ public function getFirstMedia(string $collectionName = 'default', $filters = []): ?Media { $media = $this->getMedia($collectionName, $filters); diff --git a/src/MediaCollections/FileAdder.php b/src/MediaCollections/FileAdder.php index a522ab91d..d9b61b03f 100644 --- a/src/MediaCollections/FileAdder.php +++ b/src/MediaCollections/FileAdder.php @@ -25,6 +25,9 @@ use Symfony\Component\HttpFoundation\File\File as SymfonyFile; use Symfony\Component\HttpFoundation\File\UploadedFile; +/** + * @template TMedia of \Spatie\MediaLibrary\MediaCollections\Models\Media + */ class FileAdder { use Macroable; @@ -229,11 +232,17 @@ public function addCustomHeaders(array $customRemoteHeaders): self return $this; } + /** + * @return TMedia + */ public function toMediaCollectionOnCloudDisk(string $collectionName = 'default'): Media { return $this->toMediaCollection($collectionName, config('filesystems.cloud')); } + /** + * @return TMedia + */ public function toMediaCollectionFromRemote(string $collectionName = 'default', string $diskName = ''): Media { $storage = Storage::disk($this->file->getDisk()); @@ -287,6 +296,9 @@ public function toMediaCollectionFromRemote(string $collectionName = 'default', return $media; } + /** + * @return TMedia + */ public function toMediaCollection(string $collectionName = 'default', string $diskName = ''): Media { $sanitizedFileName = ($this->fileNameSanitizer)($this->fileName); @@ -352,6 +364,9 @@ public function toMediaCollection(string $collectionName = 'default', string $di return $media; } + /** + * @return TMedia + */ public function toMediaLibrary(string $collectionName = 'default', string $diskName = ''): Media { return $this->toMediaCollection($collectionName, $diskName);