Weave Code
Code Weaver
Helps Laravel developers discover, compare, and choose open-source packages. See popularity, security, maintainers, and scores at a glance to make better decisions.
Feedback
Share your thoughts, report bugs, or suggest improvements.
Subject
Message
Cloudinary Php

Cloudinary Php Laravel Package

cloudinary/cloudinary_php

Official Cloudinary PHP SDK for uploading and managing images/videos, applying transformations, optimizing delivery, and working with URLs and resources. Supports signed requests, authentication, and integration with Cloudinary’s API for media workflows.

View on GitHub
Deep Wiki
Context7

PHP extension for Cloudinary

Frequently asked questions about Cloudinary Php
How do I integrate Cloudinary with Laravel’s file storage system?
Use the `cloudinary` disk driver in `config/filesystems.php` to replace local or S3 storage. Configure the `cloudinary` array with your API key, cloud name, and upload preset. Then, upload files via `Storage::disk('cloudinary')->put('path', $file)`. For existing apps, migrate assets with `Storage::disk('cloudinary')->copy($localPath, $remotePath)`.
Can I use Cloudinary for async image/video processing in Laravel?
Yes. Dispatch `CloudinaryUploadJob` (or a custom job) to Laravel Queues for background uploads/transformations. Use the SDK’s `upload()` method with `queue: true` or wrap it in a job. Monitor progress via Laravel Horizon or Telescope. This reduces latency for user-facing workflows like profile pictures or video thumbnails.
What Laravel versions does cloudinary/cloudinary_php support?
The package supports Laravel 8.x, 9.x, and 10.x. For older versions (7.x), use the `^1.10` branch of the SDK. Check the [Cloudinary PHP SDK docs](https://github.com/cloudinary/cloudinary_php) for version-specific breaking changes. Laravel’s service container integration works across all supported versions, but some newer features (e.g., Blade directives) may require Laravel 9+.
How do I generate dynamic image URLs with transformations in Blade templates?
Use the `@cloudinary` Blade directive or the `cloudinary_image_tag()` helper. Example: `@cloudinary('sample.jpg', ['width' => 300, 'height' => 200, 'crop' => 'limit'])` generates a URL with on-the-fly transformations. For videos, use `cloudinary_video_tag()` with HLS/DASH parameters. Cache these URLs in Laravel’s cache layer to reduce Cloudinary API calls.
Is there a way to validate or sanitize uploads before they hit Cloudinary?
Yes. Use Laravel’s `ValidateRequest` or `FormRequest` to validate file types/sizes before upload. For server-side validation, use Cloudinary’s `upload()` method with `upload_preset` and check the response for errors. For sensitive content, enable Cloudinary’s auto-moderation (AI-based) or use their API to inspect metadata post-upload.
How do I handle private media files securely in Laravel?
Generate signed URLs for private assets using `Cloudinary::url($publicId, ['type' => 'private', 'expires' => time() + 3600])`. Store these URLs in your database or cache. For Laravel, use middleware to validate signed URLs before serving content. Avoid exposing API keys in client-side code; use unsigned uploads for user-generated content and validate server-side.
Can I use Cloudinary with Laravel Nova for a media library?
Yes. Cloudinary integrates with Nova via the `spatie/laravel-medialibrary` package. Configure the `cloudinary` disk in `config/medialibrary.php` and use the Nova Media Library tool to manage uploads. For custom fields, extend Nova with a `DetailField` that generates Cloudinary URLs dynamically. This works for images, videos, and PDFs.
What are the alternatives to Cloudinary for Laravel if I need a self-hosted solution?
For self-hosted alternatives, consider AWS S3 + Imagick/FFmpeg for transformations, or packages like `spatie/laravel-medialibrary` with local storage. For managed services, Imgix or Mux offer similar CDN and transformation features. Cloudinary’s strength lies in its AI tools (auto-tagging, moderation) and ease of integration, but self-hosted options may fit compliance-heavy or cost-sensitive projects.
How do I test Cloudinary uploads in Laravel’s testing environment?
Mock the Cloudinary SDK using Laravel’s `Mockery` or `PHPUnit` to avoid real API calls. Example: `Cloudinary::shouldReceive('upload')->once()->andReturn($mockResponse)`. Test file uploads with `Storage::fake('cloudinary')` and assertions like `Storage::disk('cloudinary')->assertExists($path)`. For Blade directives, use `Blade::render()` with mocked Cloudinary responses.
What’s the best way to monitor Cloudinary usage and costs in a Laravel app?
Use Cloudinary’s API to fetch usage logs (`resources/usage`) and integrate them with Laravel’s logging or a dashboard (e.g., Laravel Nova). Set up budget alerts in your Cloudinary account and validate uploads server-side to avoid unexpected costs. For async jobs, log queue events in Horizon to track transformation usage. Consider caching transformed assets to reduce API calls.
Weaver

How can I help you explore Laravel packages today?

Conversation history is not saved when not logged in.
Prompt
Add packages to context
No packages found.
andydefer/laravel-cluster
testo/fiber
mintobit/jobqueue
a4sex/maintenance-bundle
a4sex/entity-date-update
a4sex/client-identifier
a4sex/base-utilites
a4sex/key-value-storage
a4sex/micro-status
chilldev/dependency-injection-extra
datinglibre/datinglibre-app-api
biberltd/corebundle
bricre/symfony-bundle-test
biberltd/logbundle
dominium/http-adapter-bundle
dominium/google-analytics
a4sex/auto-clean-entity
christhompsontldr/laravel-inky
spatie/mailcoach-vapor
spatie/laravel-javascript-views