PHPackages                             funnylookinhat/purgatory - 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. [File &amp; Storage](/categories/file-storage)
4. /
5. funnylookinhat/purgatory

ActiveLibrary[File &amp; Storage](/categories/file-storage)

funnylookinhat/purgatory
========================

Where objects go to wait. Easily work with any cloud object-store.

v1.0.8(11y ago)01.0k[1 issues](https://github.com/funnylookinhat/purgatory/issues)MITPHPPHP &gt;=5.3.0

Since Jun 18Pushed 11y ago1 watchersCompare

[ Source](https://github.com/funnylookinhat/purgatory)[ Packagist](https://packagist.org/packages/funnylookinhat/purgatory)[ RSS](/packages/funnylookinhat-purgatory/feed)WikiDiscussions master Synced today

READMEChangelogDependencies (1)Versions (20)Used By (0)

purgatory
=========

[](#purgatory)

Where objects to go wait.

**Purgatory is a platform agnostic object store library.**You can build your fancy whatever.js.it.er with support for image uploads and delivery via local storage, and convert it to infinitely scalable cloud storage by simply changing the credentials provided.

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

[](#installation)

Add the following to your composer.json:

```
"funnylookinhat/purgatory": "dev-master"

```

Basic Usage
-----------

[](#basic-usage)

Everything begins with initializing a provider; this can include platform-specific options, but all API calls after this point are platform agnostic.

```
$purgatory = new Purgatory((object)array(
    'provider' => 'rackspace',
    'region' => 'ORD',
    'username' => 'myUsername',
    'apiKey' => 'myApiKey',
));

```

All functions that begin with get and create will return an object, whereas functions that begin with list return strings ( of names ).

Containers are the entry point to manipulate objects.

```
$container = $purgatory->getContainer('someContainer');
$containers = $purgatory->getContainers();
$containerNames = $purgatory->listContainers();
$container = $purgatory->createContainer('myContainer');

```

Once you have a container, you can manipulate objects.

```
$name = $container->getName();
$object = $container->getObject('myObject');
$object = $container->createObject('someObject', 'path/to/someObject.file');
$objects = $container->getAllObjects();
$objectNames = $container->listAllObjects();
$container->enableCdn();
$container->disableCdn();
$url = $container->getUrl();
$sslUrl = $container->getSslUrl();

```

Objects also have several actions.

```
$name = $object->getName();
$object->update($path);
$md5 = $object->getChecksum();
$url = $object->getUrl();
$sslUrl = $object->getSslUrl();

```

###  Health Score

30

—

LowBetter than 64% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity14

Limited adoption so far

Community7

Small or concentrated contributor base

Maturity67

Established project with proven stability

 Bus Factor1

Top contributor holds 100% 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.

###  Release Activity

Cadence

Every ~10 days

Recently: every ~15 days

Total

18

Last Release

4171d ago

Major Versions

v0.1.6 → v1.0.72014-10-07

v0.1.7 → v1.0.82014-12-08

### Community

Maintainers

![](https://www.gravatar.com/avatar/ee498b108c1de8f4caa0488a35a83c4fce41dc33a2db9351fde817dd33970dad?d=identicon)[funnylookinhat](/maintainers/funnylookinhat)

---

Top Contributors

[![funnylookinhat](https://avatars.githubusercontent.com/u/397918?v=4)](https://github.com/funnylookinhat "funnylookinhat (25 commits)")

---

Tags

phps3Openstackswiftrackspacecloudfilesobject-storeceph

### Embed Badge

![Health badge](/badges/funnylookinhat-purgatory/health.svg)

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

###  Alternatives

[creocoder/yii2-flysystem

The flysystem extension for the Yii framework

2931.7M62](/packages/creocoder-yii2-flysystem)[eddturtle/direct-upload

Composer Package to build an AWS Signature ready to Direct Upload to S3

88728.1k2](/packages/eddturtle-direct-upload)[nimbusoft/flysystem-openstack-swift

Flysystem adapter for OpenStack Swift

44774.4k6](/packages/nimbusoft-flysystem-openstack-swift)[jmathai/s3-bucket-stream-zip-php

PHP library to efficiently stream contents from an AWS S3 bucket or folder as a zip file

56114.4k](/packages/jmathai-s3-bucket-stream-zip-php)

PHPackages © 2026

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