PHPackages                             dgame/php-optional - 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. dgame/php-optional

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

dgame/php-optional
==================

php optional

v0.8.0(8y ago)840.3k1MITPHP ^7.0

Since Jun 9Compare

[ Source](https://github.com/Dgame/php-optional)[ Packagist](https://packagist.org/packages/dgame/php-optional)[ Docs](https://github.com/php-optional)[ RSS](/packages/dgame-php-optional/feed)WikiDiscussions Synced yesterday

READMEChangelog (10)Dependencies (1)Versions (14)Used By (1)

php-optional
============

[](#php-optional)

[![Scrutinizer Code Quality](https://camo.githubusercontent.com/0c691e8929dff34cdb053baee606c5fca53d139aa200e3ca8df012382b1c5bcc/68747470733a2f2f7363727574696e697a65722d63692e636f6d2f672f4467616d652f7068702d6f7074696f6e616c2f6261646765732f7175616c6974792d73636f72652e706e673f623d6d6173746572)](https://scrutinizer-ci.com/g/Dgame/php-optional/?branch=master)

[![Build Status](https://camo.githubusercontent.com/bdaf93279333dcba8b59847b2402c553b72795a5b49ff0c6434ce3f3d2051296/68747470733a2f2f7472617669732d63692e6f72672f4467616d652f7068702d6f7074696f6e616c2e7376673f6272616e63683d6d6173746572)](https://travis-ci.org/Dgame/php-optional)

Rust-like Optional-type for PHP 7

### Some - a valid Value

[](#some---a-valid-value)

```
$some = some(42);
$this->assertTrue($some->isSome());
$this->assertEquals(42, $some->unwrap());
```

### Some with argument unpacking

[](#some-with-argument-unpacking)

```
$some = some(42);
$this->assertTrue($some->isSome($value));
$this->assertFalse($some->isNone());
$this->assertEquals(42, $value);
```

### None - an invalid value

[](#none---an-invalid-value)

```
$none = none();
$this->assertTrue($none->isNone());
$this->assertFalse($none->isSome());
```

### None with argument unpacking

[](#none-with-argument-unpacking)

```
$none = none();
$this->assertTrue($none->isNone());
$this->assertFalse($none->isSome($value));
$this->assertNull($value);
```

### Maybe - decides for you if your value is a `Some` or a `None`

[](#maybe---decides-for-you-if-your-value-is-a-some-or-a-none)

```
$maybe = maybe(null);
$this->assertTrue($maybe->isNone());
$maybe = maybe(42);
$this->assertTrue($maybe->isSome());
$this->assertEquals(42, $maybe->unwrap());
```

### Ensure that a condition is fulfilled

[](#ensure-that-a-condition-is-fulfilled)

```
$result = some(0)->ensure(function($value) {
    return $value > 0;
});
$this->assertTrue($result->isNone());
```

###  Health Score

31

—

LowBetter than 66% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity27

Limited adoption so far

Community10

Small or concentrated contributor base

Maturity55

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 97.7% 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 ~48 days

Recently: every ~79 days

Total

12

Last Release

3143d ago

PHP version history (2 changes)v0.1.0PHP &gt;=7.0

v0.8.0PHP ^7.0

### Community

Maintainers

![](https://www.gravatar.com/avatar/2a9fa98c1a3e70a521430fc2fba266657b2c981b5d8a36bf236fad01f9846dcd?d=identicon)[Dgame](/maintainers/Dgame)

---

Top Contributors

[![Dgame](https://avatars.githubusercontent.com/u/2406877?v=4)](https://github.com/Dgame "Dgame (43 commits)")[![Kimitri](https://avatars.githubusercontent.com/u/445639?v=4)](https://github.com/Kimitri "Kimitri (1 commits)")

---

Tags

optionmaybeoptionalnonesomeNullObject

###  Code Quality

TestsPHPUnit

### Embed Badge

![Health badge](/badges/dgame-php-optional/health.svg)

```
[![Health](https://phpackages.com/badges/dgame-php-optional/health.svg)](https://phpackages.com/packages/dgame-php-optional)
```

###  Alternatives

[phpoption/phpoption

Option Type for PHP

2.7k566.1M169](/packages/phpoption-phpoption)[kartik-v/dependent-dropdown

A multi level dependent dropdown JQuery plugin that allows nested dependencies.

1825.1M3](/packages/kartik-v-dependent-dropdown)[fof/nightmode

Add a Night Mode option for your users to use on your Flarum forum

3781.9k2](/packages/fof-nightmode)[chemem/bingo-functional

A simple functional programming library.

687.0k3](/packages/chemem-bingo-functional)[chippyash/monad

Functional programming Monad support

2728.4k8](/packages/chippyash-monad)

PHPackages © 2026

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