PHPackages                             chekote/noun-store - 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. [Testing &amp; Quality](/categories/testing)
4. /
5. chekote/noun-store

ActiveLibrary[Testing &amp; Quality](/categories/testing)

chekote/noun-store
==================

Store and work with Nouns

v5.3.0(3w ago)896.9k↑73.1%3[2 issues](https://github.com/Chekote/noun-store/issues)1MITPHPPHP &gt;=8.1CI passing

Since Nov 5Pushed 3w agoCompare

[ Source](https://github.com/Chekote/noun-store)[ Packagist](https://packagist.org/packages/chekote/noun-store)[ RSS](/packages/chekote-noun-store/feed)WikiDiscussions master Synced 3w ago

READMEChangelog (10)Dependencies (15)Versions (27)Used By (1)

[![Packagist Latest Stable Version](https://camo.githubusercontent.com/8b549dcfa6ce88335f43b620212fa2735e55396a7b6799aa04be0c0fa996855f/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f762f6368656b6f74652f6e6f756e2d73746f72652e737667)](https://packagist.org/packages/chekote/noun-store)[![Packagist Latest Unstable Version](https://camo.githubusercontent.com/cdb8fb58dddc8861ce07acf64704f025d4a00d0ca3a6504c68e9b5f18ebaccc5/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f767072652f6368656b6f74652f6e6f756e2d73746f72652e737667)](https://packagist.org/packages/chekote/noun-store)[![Packagist Total Downloads](https://camo.githubusercontent.com/c02c6064d2d685eb7b9bc3677bcc7f84c0395e87a67499dfca4b7c1b12529f7a/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f64742f6368656b6f74652f6e6f756e2d73746f72652e737667)](https://packagist.org/packages/chekote/noun-store)[![CircleCI](https://camo.githubusercontent.com/6401cdb67e0dee8c9405c6268bdccf01a6b70a333df5cce55073a334080ac470/68747470733a2f2f696d672e736869656c64732e696f2f636972636c6563692f70726f6a6563742f6769746875622f4368656b6f74652f6e6f756e2d73746f72652f6d61737465722e737667)](https://circleci.com/gh/Chekote/noun-store/tree/master)[![Codecov](https://camo.githubusercontent.com/70d7a9491ac4ee0a8ebbcf510589f83b65486447fb42c20a8f55aa85475368f8/68747470733a2f2f696d672e736869656c64732e696f2f636f6465636f762f632f6769746875622f4368656b6f74652f6e6f756e2d73746f72652f6d61737465722e737667)](https://codecov.io/gh/Chekote/noun-store/tree/master)[![Scrutinizer Code Quality](https://camo.githubusercontent.com/020ec53c5f2038d0f90aec64606224659b5ef05435d3c5bec413221970dd8a8e/68747470733a2f2f696d672e736869656c64732e696f2f7363727574696e697a65722f672f6368656b6f74652f6e6f756e2d73746f72652f6d61737465722e737667)](https://scrutinizer-ci.com/g/Chekote/noun-store/?branch=master)[![StyleCI](https://camo.githubusercontent.com/de29ae285746d947456e21f39811916df28a4a77df7d8ab01119f4b556ad699d/68747470733a2f2f7374796c6563692e696f2f7265706f732f36333832383238362f736869656c643f7374796c653d706c6173746963)](https://styleci.io/repos/63828286)[![Quality Gate Status](https://camo.githubusercontent.com/2419d33697cbee119c3a8b6144a9294aa9fdd1522536e8db9995f60f8707332f/68747470733a2f2f736f6e6172636c6f75642e696f2f6170692f70726f6a6563745f6261646765732f6d6561737572653f70726f6a6563743d4368656b6f74655f6e6f756e2d73746f7265266d65747269633d616c6572745f737461747573)](https://sonarcloud.io/dashboard?id=Chekote_noun-store)[![Bugs](https://camo.githubusercontent.com/f4db066794c4ea946dcd6e8c3f2f7eb9f74db7480e3a0a34137011a212ab04d0/68747470733a2f2f736f6e6172636c6f75642e696f2f6170692f70726f6a6563745f6261646765732f6d6561737572653f70726f6a6563743d4368656b6f74655f6e6f756e2d73746f7265266d65747269633d62756773)](https://sonarcloud.io/dashboard?id=Chekote_noun-store)[![Code Smells](https://camo.githubusercontent.com/43cfb9c70e98c0a92f406394ec194beec7bfbeb87f75f89bfd4644d62d2ce211/68747470733a2f2f736f6e6172636c6f75642e696f2f6170692f70726f6a6563745f6261646765732f6d6561737572653f70726f6a6563743d4368656b6f74655f6e6f756e2d73746f7265266d65747269633d636f64655f736d656c6c73)](https://sonarcloud.io/dashboard?id=Chekote_noun-store)[![Duplicate Lines Density](https://camo.githubusercontent.com/989df5b53c5360613ccc013a09e39821efdf78f100b8567d3d206882da7b1299/68747470733a2f2f736f6e6172636c6f75642e696f2f6170692f70726f6a6563745f6261646765732f6d6561737572653f70726f6a6563743d4368656b6f74655f6e6f756e2d73746f7265266d65747269633d6475706c6963617465645f6c696e65735f64656e73697479)](https://sonarcloud.io/dashboard?id=Chekote_noun-store)[![Lines of Code](https://camo.githubusercontent.com/a291fc0f148f59cb2c7fa16bd6048eb5b6974b9521277cdc28fc2599e165984f/68747470733a2f2f736f6e6172636c6f75642e696f2f6170692f70726f6a6563745f6261646765732f6d6561737572653f70726f6a6563743d4368656b6f74655f6e6f756e2d73746f7265266d65747269633d6e636c6f63)](https://sonarcloud.io/dashboard?id=Chekote_noun-store)[![Maintainability](https://camo.githubusercontent.com/07c18c1d73d01da8168f5727fd041f43ef83bf607a5d3d3c2a59bbd897c44cb2/68747470733a2f2f736f6e6172636c6f75642e696f2f6170692f70726f6a6563745f6261646765732f6d6561737572653f70726f6a6563743d4368656b6f74655f6e6f756e2d73746f7265266d65747269633d7371616c655f726174696e67)](https://sonarcloud.io/dashboard?id=Chekote_noun-store)[![Reliability](https://camo.githubusercontent.com/b250f77198b88853e80bb3e81ceb7c3575aed1a0ef687210dee6880afb878c3c/68747470733a2f2f736f6e6172636c6f75642e696f2f6170692f70726f6a6563745f6261646765732f6d6561737572653f70726f6a6563743d4368656b6f74655f6e6f756e2d73746f7265266d65747269633d72656c696162696c6974795f726174696e67)](https://sonarcloud.io/dashboard?id=Chekote_noun-store)[![Security](https://camo.githubusercontent.com/960bd58c1e2a16e53eaafc202c7829a82363e134036396e80789c3d05bf7ef35/68747470733a2f2f736f6e6172636c6f75642e696f2f6170692f70726f6a6563745f6261646765732f6d6561737572653f70726f6a6563743d4368656b6f74655f6e6f756e2d73746f7265266d65747269633d73656375726974795f726174696e67)](https://sonarcloud.io/dashboard?id=Chekote_noun-store)[![Technical Debt](https://camo.githubusercontent.com/7214241e7ffb435374fac9a7402835207d4c871f10953023edded51eec796d03/68747470733a2f2f736f6e6172636c6f75642e696f2f6170692f70726f6a6563745f6261646765732f6d6561737572653f70726f6a6563743d4368656b6f74655f6e6f756e2d73746f7265266d65747269633d7371616c655f696e646578)](https://sonarcloud.io/dashboard?id=Chekote_noun-store)[![Vulnerabilities](https://camo.githubusercontent.com/f0df1fe8b3eb3c6ded14a755026060098c77a8f22a8ffe169a07250e3dbcee6d/68747470733a2f2f736f6e6172636c6f75642e696f2f6170692f70726f6a6563745f6261646765732f6d6561737572653f70726f6a6563743d4368656b6f74655f6e6f756e2d73746f7265266d65747269633d76756c6e65726162696c6974696573)](https://sonarcloud.io/dashboard?id=Chekote_noun-store)

noun-store
==========

[](#noun-store)

Store and work with Nouns.

Usage
-----

[](#usage)

1. Add it to your requirements

```
composer require chekote/noun-store
```

### Make a store

[](#make-a-store)

```
$store = new \Chekote\NounStore\Store();
```

### Store something

[](#store-something)

```
$john = new Person();
$john->firstName = 'John';
$john->lastName = 'Smith';

$store->set('best friend', $john);
```

### Check if we have something

[](#check-if-we-have-something)

```
$store->keyExists('best friend');
```

### Assert if we have something

[](#assert-if-we-have-something)

```
$assert = new \Chekote\NounStore\Assert($store);
$assert->keyExists('best friend');
```

### Retrieve something

[](#retrieve-something)

```
$store->get('best friend');
```

### Store something else in the same key

[](#store-something-else-in-the-same-key)

```
$chris = new Person();
$chris->firstName = 'Chris';
$chris->lastName = 'Pratt';

$store->set('best friend', $chris);
```

### Retrieve the new thing

[](#retrieve-the-new-thing)

```
$store->get('best friend');

or

$store->get('2nd best friend');
```

### Retrieve the old thing

[](#retrieve-the-old-thing)

```
$store->get('1st best friend');
```

### Empty the store

[](#empty-the-store)

```
$store->reset();
```

Development
-----------

[](#development)

### Installing Development Pre-Requisites

[](#installing-development-pre-requisites)

Install [Docker](https://www.docker.com).

You will also want to ensure that `./bin` is in your `$PATH` and is the highest priority. You can do so by adding the following to your shell profile:

```
export PATH=./bin:$PATH
```

### Installing The Project for Development

[](#installing-the-project-for-development)

Clone the repository:

```
git clone git@github.com:Chekote/noun-store.git
cd noun-store
```

### Executing tests

[](#executing-tests)

Tests are written using [phpunit](https://phpunit.de/). You can execute them via the command line:

```
phpunit
```

###  Health Score

60

—

FairBetter than 98% of packages

Maintenance90

Actively maintained with recent releases

Popularity36

Limited adoption so far

Community15

Small or concentrated contributor base

Maturity82

Battle-tested with a long release history

 Bus Factor1

Top contributor holds 95.1% 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 ~142 days

Recently: every ~158 days

Total

23

Last Release

23d ago

Major Versions

v1.2.1 → v2.02018-01-24

2.0.x-dev → v3.0.02018-10-24

3.x-dev → v4.0.02020-03-16

v4.2.0 → v5.0.02024-09-06

PHP version history (2 changes)1.0.x-devPHP &gt;=5.6.30

v5.0.0PHP &gt;=8.1

### Community

Maintainers

![](https://avatars.githubusercontent.com/u/550486?v=4)[Donald Tyler](/maintainers/Chekote)[@Chekote](https://github.com/Chekote)

---

Top Contributors

[![Chekote](https://avatars.githubusercontent.com/u/550486?v=4)](https://github.com/Chekote "Chekote (98 commits)")[![danrcastro](https://avatars.githubusercontent.com/u/6893657?v=4)](https://github.com/danrcastro "danrcastro (3 commits)")[![ishyevandro](https://avatars.githubusercontent.com/u/1781740?v=4)](https://github.com/ishyevandro "ishyevandro (1 commits)")[![jose-ochoa](https://avatars.githubusercontent.com/u/16085034?v=4)](https://github.com/jose-ochoa "jose-ochoa (1 commits)")

---

Tags

testingnoun

###  Code Quality

TestsPHPUnit

Code StylePHP\_CodeSniffer

### Embed Badge

![Health badge](/badges/chekote-noun-store/health.svg)

```
[![Health](https://phpackages.com/badges/chekote-noun-store/health.svg)](https://phpackages.com/packages/chekote-noun-store)
```

###  Alternatives

[timacdonald/log-fake

A drop in fake logger for testing with the Laravel framework.

4236.4M65](/packages/timacdonald-log-fake)[sti3bas/laravel-scout-array-driver

Array driver for Laravel Scout

971.6M5](/packages/sti3bas-laravel-scout-array-driver)[luthfi/simple-crud-generator

A simple CRUD generator for Laravel 5.5 (and later) with Bootstrap 5.

17122.2k](/packages/luthfi-simple-crud-generator)[calebdw/larastan

Larastan - Discover bugs in your code without running it. A phpstan/phpstan extension for Laravel

15104.9k4](/packages/calebdw-larastan)

PHPackages © 2026

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