PHPackages                             myena/php-rgw-api - 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. myena/php-rgw-api

ActiveLibrary[API Development](/categories/api)

myena/php-rgw-api
=================

PHP Client for the Rados Gateway API that doesn't suck

4.0.0(5y ago)26.8k↓50%3MPL-2.0PHPPHP &gt;=7.3CI failing

Since Jun 14Pushed 5y ago5 watchersCompare

[ Source](https://github.com/myENA/php-rgw-api)[ Packagist](https://packagist.org/packages/myena/php-rgw-api)[ RSS](/packages/myena-php-rgw-api/feed)WikiDiscussions master Synced 1mo ago

READMEChangelog (6)Dependencies (5)Versions (16)Used By (0)

php-rgw-api
===========

[](#php-rgw-api)

This lib aims to be a comprehensive PHP SDK for the [Rados Gateway Admin API](http://docs.ceph.com/docs/jewel/radosgw/adminops/).

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

[](#installation)

This lib is designed to be installed using [Composer](https://getcomposer.org)

```
{
  "require": {
    "myena/php-rgw-api": "4.*"
  }
}
```

Features
--------

[](#features)

1. All object-containing responses are modeled ([list](./src/Models))
2. Entire request chain is fully modeled, with required parameters being type-hinted (e.g. [UserRootLink::Info](./src/Chain/UserRootLink.php))
3. All models have full [swagger-php](https://github.com/zircote/swagger-php) markup
4. Includes undocumented `/metadata` endpoints
5. Parameter validation ([link](./src/Validator)) with hopefully useful error messages

Usage Basics
------------

[](#usage-basics)

More details on each component can be found below, however here is a quick fill-in-the-blank example:

```
$config = new \MyENA\RGW\Config([
    'address'   => '',
    'adminPath' => '',
    'apiKey'    => '',
    'apiSecret' => '',
]);
$client = new \MyENA\RGW\Client($config, new \MyENA\RGW\Signature\V2Signature());

[$users, $err] = $client->Metadata()->User()->List()->execute();
if (null !== $err) {
    die((string)$err);
}
var_dump($users);

// and whatever else you wanna do...
```

### Advanced Config

[](#advanced-config)

You must first construct a [Config](src/Config.php):

```
$config = new \MyENA\RGW\Config([
    'address'   => '',  // REQUIRED
    'apiKey'    => '',  // REQUIRED
    'apiSecret' => '',  // REQUIRED

    'adminPath'     => '',  // optional, whatever your admin ops path is

    'silent' => false // optional, silences all logging
]);
```

#### Custom Guzzle Client

[](#custom-guzzle-client)

The optional 2nd argument in the [Config](src/Config.php) constructor accepts any object implementing the [Guzzle ClientInterface](https://github.com/guzzle/guzzle/blob/master/src/ClientInterface.php). If left null, a new [Guzzle Client](https://github.com/guzzle/guzzle/blob/master/src/Client.php) with no options will be constructed.

#### Custom Logger

[](#custom-logger)

The optional 3rd argument in the [Config](src/Config.php) constructor accepts any object implementing the [Psr LoggerInterface](https://github.com/php-fig/log/blob/master/Psr/Log/LoggerInterface.php). If left null, a new [Psr NullLogger](https://github.com/php-fig/log/blob/master/Psr/Log/NullLogger.php) will be constructed.

###  Health Score

34

—

LowBetter than 77% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity26

Limited adoption so far

Community11

Small or concentrated contributor base

Maturity65

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 ~66 days

Recently: every ~163 days

Total

14

Last Release

2037d ago

Major Versions

1.0.2 → 2.0.02018-06-19

2.0.3 → 3.0.02018-12-25

3.0.4 → 4.0.02020-10-19

PHP version history (2 changes)1.0.0PHP &gt;=7.1

4.0.0PHP &gt;=7.3

### Community

Maintainers

![](https://www.gravatar.com/avatar/385c0c0eae1b51f1e81ee464ff6bfb3cce32589ac252ca68cc3a8aec2e3ada14?d=identicon)[dcarbone](/maintainers/dcarbone)

---

Top Contributors

[![dcarbone](https://avatars.githubusercontent.com/u/1392439?v=4)](https://github.com/dcarbone "dcarbone (23 commits)")

---

Tags

ceph-radosgwphpradosgwradosgwadmin

###  Code Quality

TestsPHPUnit

### Embed Badge

![Health badge](/badges/myena-php-rgw-api/health.svg)

```
[![Health](https://phpackages.com/badges/myena-php-rgw-api/health.svg)](https://phpackages.com/packages/myena-php-rgw-api)
```

###  Alternatives

[sylius/sylius

E-Commerce platform for PHP, based on Symfony framework.

8.4k5.6M651](/packages/sylius-sylius)[theodo-group/llphant

LLPhant is a library to help you build Generative AI applications.

1.5k311.5k5](/packages/theodo-group-llphant)[wheelpros/fitment-platform-api

Magento 2 (Open Source)

12.1k1.2k](/packages/wheelpros-fitment-platform-api)[avalara/avataxclient

Client library for Avalara's AvaTax suite of business tax calculation and processing services. Uses the REST v2 API.

517.9M7](/packages/avalara-avataxclient)[alexacrm/dynamics-webapi-toolkit

Web API toolkit for Microsoft Dynamics 365 and Dynamics CRM

81324.1k1](/packages/alexacrm-dynamics-webapi-toolkit)[commercetools/commercetools-sdk

The official PHP SDK for the commercetools Composable Commerce APIs

19281.5k](/packages/commercetools-commercetools-sdk)

PHPackages © 2026

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