PHPackages                             sproutwp/sprout\_identity - 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. sproutwp/sprout\_identity

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

sproutwp/sprout\_identity
=========================

A module that helps determine the unique, collective identity of objects within an array.

01PHP

Since Jun 12Pushed 6y agoCompare

[ Source](https://github.com/sproutwp/sprout_identity)[ Packagist](https://packagist.org/packages/sproutwp/sprout_identity)[ RSS](/packages/sproutwp-sprout-identity/feed)WikiDiscussions master Synced yesterday

READMEChangelogDependenciesVersions (1)Used By (0)

Sprout Identity
===============

[](#sprout-identity)

A package that helps you determine the identity of objects in an array. The Sprout Framework almost exclusively works with arrays of objects and it wants / needs to have an unique handle for each object, as well as a "group identity" readily available at all times.

Use Cases
---------

[](#use-cases)

#### You generate output from a lot of objects, but instead of doing it on every request, you just get that output from the database.

[](#you-generate-output-from-a-lot-of-objects-but-instead-of-doing-it-on-every-request-you-just-get-that-output-from-the-database)

You have about 50-60 objects, for example, our `SuggestionsModule` allows developers to register their own suggestions to be made to whoever is using a theme. Each suggestion has to do a few checks which might be heavy or not, then generate output. Imagine if this happens on a shared server, on every request. As you can see, this module will initially compute the identity of the said collection of objects, keep track of it, re-compute it on every request **but never** re-execute the heavy code.

If it detectes that a new object was added to the collection, it re-builds both the indentity and it lets the code run.

This works amazing with our other module, `SproutCache`.

###  Health Score

18

—

LowBetter than 8% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity1

Limited adoption so far

Community8

Small or concentrated contributor base

Maturity37

Early-stage or recently created project

 Bus Factor1

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

### Community

Maintainers

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

---

Top Contributors

[![sproutwp](https://avatars.githubusercontent.com/u/51598561?v=4)](https://github.com/sproutwp "sproutwp (2 commits)")[![themeflame](https://avatars.githubusercontent.com/u/9643236?v=4)](https://github.com/themeflame "themeflame (2 commits)")

### Embed Badge

![Health badge](/badges/sproutwp-sprout-identity/health.svg)

```
[![Health](https://phpackages.com/badges/sproutwp-sprout-identity/health.svg)](https://phpackages.com/packages/sproutwp-sprout-identity)
```

###  Alternatives

[albertcht/lumen-helpers

To support Laravel 's unsupported features in Lumen.

3031.3k1](/packages/albertcht-lumen-helpers)[juststeveking/laravel-stubs

An opinionated version of the Laravel stubs

111.1k](/packages/juststeveking-laravel-stubs)

PHPackages © 2026

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