Skip to content

MediaLibrary Services ​

Directory: src/Services/MediaLibrary/
Facade: Unusualify\Modularous\Facades\ImageService (bound as imageService)

The MediaLibrary namespace provides a driver-based image service abstraction. All concrete drivers implement ImageServiceInterface, exposing a unified API for generating image URLs regardless of the underlying CDN or storage backend.

Selecting a Driver ​

Set modularous.media_library.image_service in config/modularous.php:

php
'media_library' => [
    'image_service' => env('MEDIA_LIBRARY_IMAGE_SERVICE', 'local'),
    'disk'          => env('MEDIA_LIBRARY_DISK', 'public'),
],
DriverConfig valuePage
LocallocalDirect disk URL — no transformation
GlideglideOn-the-fly server-side transformation via League/Glide
ImgiximgixImgix CDN with signed/unsigned URL generation
TwicPicstwicpicsTwicPics CDN with transformation string

Supporting Classes ​

ClassDescriptionPage
ImageServiceInterfaceContract all drivers must implement→
ImageServiceLaravel Facade resolving to the active driver→
ImageServiceDefaultsShared trait: getSocialFallbackUrl, getTransparentFallbackUrl→
AbstractParamsProcessorBase class for driver-specific parameter translators→
TwicPicsParamsProcessorTranslates standard params to TwicPics transformation syntax→

ImageServiceInterface ​

All drivers implement the following interface:

MethodSignatureDescription
getUrlgetUrl(string $id, array $params): stringStandard URL, applying default transformation params
getUrlWithCropgetUrlWithCrop(string $id, array $cropParams, array $params): stringURL with explicit crop coordinates (crop_x, crop_y, crop_w, crop_h)
getUrlWithFocalCropgetUrlWithFocalCrop(string $id, array $cropParams, int $width, int $height, array $params): stringURL using focal-point crop calculated from crop coordinates and original dimensions
getLQIPUrlgetLQIPUrl(string $id, array $params): stringLow-quality image placeholder URL (small, blurry preview)
getSocialUrlgetSocialUrl(string $id, array $params): stringOpen Graph / social sharing optimized URL
getCmsUrlgetCmsUrl(string $id, array $params): stringAdmin panel thumbnail URL
getRawUrlgetRawUrl(string $id): stringUnmodified source URL without any transformation params
getDimensionsgetDimensions(string $id): ?arrayReturn ['width' => int, 'height' => int] or null if unsupported

Facade Usage ​

php
use Unusualify\Modularous\Services\MediaLibrary\ImageService;

// Via facade (resolves the active driver)
$url     = ImageService::getUrl($media->uuid);
$lqip    = ImageService::getLQIPUrl($media->uuid);
$cropped = ImageService::getUrlWithCrop($media->uuid, $media->crop_params);