Create New Item
Item Type
File
Folder
Item Name
Search file in folder and subfolders...
Are you sure want to rename?
peripherad
/
vendor
/
spatie
/
laravel-medialibrary
/
src
/
Support
/
UrlGenerator
:
UrlGeneratorFactory.php
Advanced Search
Upload
New Item
Settings
Back
Back Up
Advanced Editor
Save
<?php namespace Spatie\MediaLibrary\Support\UrlGenerator; use Spatie\MediaLibrary\Conversions\ConversionCollection; use Spatie\MediaLibrary\MediaCollections\Exceptions\InvalidUrlGenerator; use Spatie\MediaLibrary\MediaCollections\Models\Media; use Spatie\MediaLibrary\Support\PathGenerator\PathGeneratorFactory; class UrlGeneratorFactory { public static function createForMedia(Media $media, string $conversionName = ''): UrlGenerator { $urlGeneratorClass = config('media-library.url_generator'); static::guardAgainstInvalidUrlGenerator($urlGeneratorClass); /** @var UrlGenerator $urlGenerator */ $urlGenerator = app($urlGeneratorClass); $pathGenerator = PathGeneratorFactory::create($media); $urlGenerator ->setMedia($media) ->setPathGenerator($pathGenerator); if ($conversionName !== '') { $conversion = ConversionCollection::createForMedia($media)->getByName($conversionName); $urlGenerator->setConversion($conversion); } return $urlGenerator; } public static function guardAgainstInvalidUrlGenerator(string $urlGeneratorClass): void { if (! class_exists($urlGeneratorClass)) { throw InvalidUrlGenerator::doesntExist($urlGeneratorClass); } if (! is_subclass_of($urlGeneratorClass, UrlGenerator::class)) { throw InvalidUrlGenerator::doesNotImplementUrlGenerator($urlGeneratorClass); } } }