PHPackages                             jeremykendall/ultra-facade - 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. [Utility &amp; Helpers](/categories/utility)
4. /
5. jeremykendall/ultra-facade

ActiveLibrary[Utility &amp; Helpers](/categories/utility)

jeremykendall/ultra-facade
==========================

Implements the Facade pattern to build SplIterators.

1.0.0(12y ago)618MITPHPPHP &gt;=5.4

Since Mar 6Pushed 12y ago2 watchersCompare

[ Source](https://github.com/jeremykendall/ultra-facade)[ Packagist](https://packagist.org/packages/jeremykendall/ultra-facade)[ RSS](/packages/jeremykendall-ultra-facade/feed)WikiDiscussions develop Synced yesterday

READMEChangelog (1)Dependencies (1)Versions (3)Used By (0)

UltraFacade
===========

[](#ultrafacade)

In the context of UltraFacade, a Facade is an object-oriented creational design pattern to implement the concept of facades and deals with the problem of creating objects without specifying the exact class of object that will be created.

A Concrete Implementation
-------------------------

[](#a-concrete-implementation)

The concrete implentation in this library, `JeremyKendall\UltraFacade\SplIteratorFacade`, is an example of how to properly use a Facade. It creates SPL Iterators based on a type string passed in at runtime. The type string is the name of the SPL Iterator with 'Iterator' removed (less typing FTW). The second optional argument is used to pass required params the the iterator's constructor.

```
$iterator = new SplIteratorFacade::facade('RecursiveDirectory', array(__DIR__));
```

While this specific facade implementation is production ready and should be used if you have a use case for it, the intent is simply to demonstrate how the Facade should be used.

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

[](#installation)

Installation is handled via [Composer](http://getcomposer.org).

```
{
    "require": {
        "jeremykendall/ultra-facade": "1.*"
    }
}
```

Please check the [UltraFacade page](https://packagist.org/packages/jeremykendall/ultra-facade) at Packagist for the latest version.

###  Health Score

27

—

LowBetter than 49% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity11

Limited adoption so far

Community8

Small or concentrated contributor base

Maturity59

Maturing project, gaining track record

 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

Unknown

Total

1

Last Release

4451d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/4232bff51ec1380e748a6829d6f98b88a15f16cc70af454da69d50c469d8c889?d=identicon)[jeremykendall](/maintainers/jeremykendall)

---

Top Contributors

[![jeremykendall](https://avatars.githubusercontent.com/u/288613?v=4)](https://github.com/jeremykendall "jeremykendall (1 commits)")

---

Tags

iteratorsfacadespldesign patternsFacade Pattern

###  Code Quality

TestsPHPUnit

### Embed Badge

![Health badge](/badges/jeremykendall-ultra-facade/health.svg)

```
[![Health](https://phpackages.com/badges/jeremykendall-ultra-facade/health.svg)](https://phpackages.com/packages/jeremykendall-ultra-facade)
```

###  Alternatives

[doctrine/collections

PHP Doctrine Collections library that adds additional functionality on top of PHP arrays.

6.0k411.1M1.2k](/packages/doctrine-collections)[webpatser/laravel-uuid

Laravel integration for webpatser/uuid - High-performance drop-in UUID replacements (15% faster than Ramsey). Provides Str macros, HasUuids trait, facades, and casts. RFC 4122/9562 compliant.

1.8k17.3M129](/packages/webpatser-laravel-uuid)[ihor/nspl

Non-standard PHP library (NSPL) - functional primitives toolbox and more

381368.5k](/packages/ihor-nspl)[sdboyer/gliph

A graph library for PHP.

17029.1k1](/packages/sdboyer-gliph)[loophp/iterators

The missing PHP iterators.

38463.7k3](/packages/loophp-iterators)[imanghafoori/smart-realtime-facades

Real-time facades with IDE auto-completion.

33427.0k3](/packages/imanghafoori-smart-realtime-facades)

PHPackages © 2026

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