PHPackages                             krydos/cloudder - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [API Development](/categories/api)
4. /
5. krydos/cloudder

ActiveLibrary[API Development](/categories/api)

krydos/cloudder
===============

Cloudinary API wrapper for Laravel.

04.9k↓50%PHP

Since Oct 9Pushed 2y agoCompare

[ Source](https://github.com/krydos/cloudder)[ Packagist](https://packagist.org/packages/krydos/cloudder)[ RSS](/packages/krydos-cloudder/feed)WikiDiscussions master Synced 1mo ago

READMEChangelogDependenciesVersions (1)Used By (0)

Cloudder: Cloudinary wrapper for Laravel
========================================

[](#cloudder-cloudinary-wrapper-for-laravel)

#### Fork of  which has no much difference except it is published to packagist.

[](#fork-of-httpsgithubcomtentacleappcloudder-which-has-no-much-difference-except-it-is-published-to-packagist)

#### An updated version of  intended to make use of the Cloudinary API v2, as well as compatibility with Laravel 8 and PHP 7.

[](#an-updated-version-of-httpsgithubcomjrm2k6cloudder-intended-to-make-use-of-the-cloudinary-api-v2-as-well-as-compatibility-with-laravel-8-and-php-7)

> The original project is found at .

Installation
------------

[](#installation)

`composer require krydos/cloudder`

Configuration
-------------

[](#configuration)

Modify your `.env` file to add the following information from [Cloudinary](http://www.cloudinary.com)

### Required

[](#required)

```
CLOUDINARY_API_KEY=012345679890123
CLOUDINARY_API_SECRET=foobarfoobarfoob-arfoobarfo
CLOUDINARY_CLOUD_NAME=foobarcorp

```

### Optional

[](#optional)

```
CLOUDINARY_BASE_URL
CLOUDINARY_SECURE_URL
CLOUDINARY_API_BASE_URL

```

Laravel 5.5+ uses Package Auto-Discovery, so doesn't require you to manually add the ServiceProvider. If you don't use auto-discovery follow the next steps:

Add the following in config/app.php:

```
'providers' => [
  JD\Cloudder\CloudderServiceProvider::class,
];

'aliases' => [
  'Cloudder' => JD\Cloudder\Facades\Cloudder::class,
];
```

Run `php artisan vendor:publish --provider="JD\Cloudder\CloudderServiceProvider"`

Usage
-----

[](#usage)

### upload()

[](#upload)

```
Cloudder::upload($filename, $publicId, array $options, array $tags);
```

with:

- `$filename`: path to the image you want to upload
- `$publicId`: the id you want your picture to have on Cloudinary, leave it null to have Cloudinary generate a random id.
- `$options`: options for your uploaded image, check the [Cloudinary documentation](http://cloudinary.com/documentation/php_image_upload#all_upload_options) to know more
- `$tags`: tags for your image

returns the `CloudinaryWrapper`.

### uploadVideo()

[](#uploadvideo)

```
Cloudder::uploadVideo($filename, $publicId, array $options, array $tags);
```

with:

- `$filename`: path to the video you want to upload
- `$publicId`: the id you want your video to have on Cloudinary, leave it null to have Cloudinary generate a random id.
- `$options`: options for your uploaded video, check the Cloudinary documentation to know more
- `$tags`: tags for your image

returns the `CloudinaryWrapper`.

### getPublicId()

[](#getpublicid)

```
Cloudder::getPublicId()
```

returns the `public id` of the last uploaded resource.

### getResult()

[](#getresult)

```
Cloudder::getResult()
```

returns the result of the last uploaded resource.

### show() + secureShow()

[](#show--secureshow)

```
Cloudder::show($publicId, array $options)
Cloudder::secureShow($publicId, array $options)
```

with:

- `$publicId`: public id of the resource to display
- `$options`: options for your uploaded resource, check the Cloudinary documentation to know more

returns the `url` of the picture on Cloudinary (https url if secureShow is used).

### showPrivateUrl()

[](#showprivateurl)

```
Cloudder::showPrivateUrl($publicId, $format, array $options)
```

with:

- `$publicId`: public id of the resource to display
- `$format`: format of the resource your want to display ('png', 'jpg'...)
- `$options`: options for your uploaded resource, check the Cloudinary documentation to know more

returns the `private url` of the picture on Cloudinary, expiring by default after an hour.

### rename()

[](#rename)

```
Cloudder::rename($publicId, $toPublicId, array $options)
```

with:

- `$publicId`: publicId of the resource to rename
- `$toPublicId`: new public id of the resource
- `$options`: options for your uploaded resource, check the cloudinary documentation to know more

renames the original picture with the `$toPublicId` id parameter.

### destroyImage() + delete()

[](#destroyimage--delete)

```
Cloudder::destroyImage($publicId, array $options)
Cloudder::delete($publicId, array $options)
```

with:

- `$publicId`: publicId of the resource to remove
- `$options`: options for the image to delete, check the cloudinary documentation to know more

removes image from Cloudinary.

### destroyImages()

[](#destroyimages)

```
Cloudder::destroyImages(array $publicIds, array $options)
```

with:

- `$publicIds`: array of ids, identifying the pictures to remove
- `$options`: options for the images to delete, check the cloudinary documentation to know more

removes images from Cloudinary.

### addTag()

[](#addtag)

```
Cloudder::addTag($tag, $publicIds, array $options)
```

with:

- `$tag`: tag to apply
- `$publicIds`: images to apply tag to
- `$options`: options for your uploaded resource, check the cloudinary documentation to know more

### removeTag()

[](#removetag)

```
Cloudder::removeTag($tag, $publicIds, array $options)
```

with:

- `$tag`: tag to remove
- `$publicIds`: images to remove tag from
- `$options`: options for your uploaded image, check the Cloudinary documentation to know more

### createArchive()

[](#createarchive)

```
Cloudder::createArchive(array $options, $archiveName, $mode)
```

with:

- `$options`: options for your archive, like name, tag/prefix/public ids to select images
- `$archiveName`: name you want to give to your archive
- `$mode`: 'create' or 'download' ('create' will create an archive and returns a JSON response with the properties of the archive, 'download' will return the zip file for download)

creates a zip file on Cloudinary.

### downloadArchiveUrl()

[](#downloadarchiveurl)

```
Cloudder::downloadArchiveUrl(array $options, $archiveName)
```

with:

- `$options`: options for your archive, like name, tag/prefix/public ids to select images
- `$archiveName`: name you want to give to your archive

returns a `download url` for the newly created archive on Cloudinary.

Running tests
-------------

[](#running-tests)

`phpunit`

###  Health Score

20

—

LowBetter than 14% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity22

Limited adoption so far

Community14

Small or concentrated contributor base

Maturity21

Early-stage or recently created project

 Bus Factor1

Top contributor holds 71.6% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

### Community

Maintainers

![](https://www.gravatar.com/avatar/6a6ad8ce7c088b44c2db13656f41bb1c93b5116b01c6ff942f8ee71d4112e590?d=identicon)[KryDos](/maintainers/KryDos)

---

Top Contributors

[![jrm2k6](https://avatars.githubusercontent.com/u/1088099?v=4)](https://github.com/jrm2k6 "jrm2k6 (58 commits)")[![krydos](https://avatars.githubusercontent.com/u/910691?v=4)](https://github.com/krydos "krydos (6 commits)")[![rogervila](https://avatars.githubusercontent.com/u/6053012?v=4)](https://github.com/rogervila "rogervila (5 commits)")[![faizaajmal](https://avatars.githubusercontent.com/u/23365681?v=4)](https://github.com/faizaajmal "faizaajmal (3 commits)")[![clemblanco](https://avatars.githubusercontent.com/u/668419?v=4)](https://github.com/clemblanco "clemblanco (2 commits)")[![bjohanning](https://avatars.githubusercontent.com/u/38767939?v=4)](https://github.com/bjohanning "bjohanning (2 commits)")[![osbre](https://avatars.githubusercontent.com/u/23292709?v=4)](https://github.com/osbre "osbre (1 commits)")[![pixel-penguin](https://avatars.githubusercontent.com/u/8964456?v=4)](https://github.com/pixel-penguin "pixel-penguin (1 commits)")[![mikeaag](https://avatars.githubusercontent.com/u/1278785?v=4)](https://github.com/mikeaag "mikeaag (1 commits)")[![markeilander](https://avatars.githubusercontent.com/u/2378970?v=4)](https://github.com/markeilander "markeilander (1 commits)")[![joseraul](https://avatars.githubusercontent.com/u/676681?v=4)](https://github.com/joseraul "joseraul (1 commits)")

### Embed Badge

![Health badge](/badges/krydos-cloudder/health.svg)

```
[![Health](https://phpackages.com/badges/krydos-cloudder/health.svg)](https://phpackages.com/packages/krydos-cloudder)
```

###  Alternatives

[stripe/stripe-php

Stripe PHP Library

4.0k143.3M480](/packages/stripe-stripe-php)[twilio/sdk

A PHP wrapper for Twilio's API

1.6k92.9M272](/packages/twilio-sdk)[facebook/php-business-sdk

PHP SDK for Facebook Business

90821.9M34](/packages/facebook-php-business-sdk)[meilisearch/meilisearch-php

PHP wrapper for the Meilisearch API

74513.7M114](/packages/meilisearch-meilisearch-php)[google/gax

Google API Core for PHP

265103.1M454](/packages/google-gax)[google/common-protos

Google API Common Protos for PHP

173103.7M50](/packages/google-common-protos)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
