PHPackages                             serendipity\_hq/features-bundle - 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. serendipity\_hq/features-bundle

Abandoned → [serendipity\_hq/bundle-features](/?search=serendipity_hq%2Fbundle-features)Symfony-bundle[Utility &amp; Helpers](/categories/utility)

serendipity\_hq/features-bundle
===============================

Manage features and plans in your Symfony app.

0.12.18(1y ago)111.2k1[16 issues](https://github.com/Aerendir/bundle-features/issues)MITPHPPHP ^8.0CI failing

Since Jan 3Pushed 1y ago1 watchersCompare

[ Source](https://github.com/Aerendir/bundle-features)[ Packagist](https://packagist.org/packages/serendipity_hq/features-bundle)[ Docs](https://github.com/Aerendir/bundle-features)[ RSS](/packages/serendipity-hq-features-bundle/feed)WikiDiscussions dev Synced 1mo ago

READMEChangelogDependencies (22)Versions (52)Used By (0)

 [ ![](https://camo.githubusercontent.com/5041251627a7ec1bf9335a20531d818d198f5315fc6e12d88c4694c9dcfd5bc7/687474703a2f2f7777772e736572656e64697069747968712e636f6d2f6173736574732f6f70656e2d736f757263652d70726f6a656374732f4c6f676f2d536572656e64697069747948512d49636f6e2d546578742d507572706c652e706e67) ](http://www.serendipityhq.com)

Serendipity HQ Features Bundle
==============================

[](#serendipity-hq-features-bundle)

Features Bundle helps you manage paid features and plans in your Symfony app.

 [![](https://camo.githubusercontent.com/ddd3aef301db7e7838f74eba281f9e3a4ba0a1d06c9fa531401cae9e80634f02/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f762f736572656e6469706974795f68712f62756e646c652d66656174757265732e7376673f7374796c653d666c61742d737175617265)](https://github.com/Aerendir/bundle-features/releases) [![](https://camo.githubusercontent.com/55c0218c8f8009f06ad4ddae837ddd05301481fcf0dff8e0ed9dadda8780713e/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f6c6963656e73652d4d49542d627269676874677265656e2e7376673f7374796c653d666c61742d737175617265)](https://opensource.org/licenses/MIT) [![](https://camo.githubusercontent.com/3394900696a859b72fd37a9f71d0bbb025627577830b6aae516ac2da44de7f3b/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f7068702d762f736572656e6469706974795f68712f62756e646c652d66656174757265733f636f6c6f723d253233383839324246267374796c653d666c61742d737175617265266c6f676f3d706870)](https://github.com/Aerendir/bundle-features/releases)

 Supports: [![](https://camo.githubusercontent.com/152f8cb6191d2308b19e8962cbcefc2cf04a6606af6f40163c7ef74ba4499c63/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f53796d666f6e792d253545342e342d3333333f7374796c653d666c61742d737175617265266c6f676f3d73796d666f6e79 "Supports Symfony ^4.4")](https://github.com/Aerendir/bundle-aws-ses-monitor/actions?query=branch%3Adev "Supports Symfony ^4.4") [![](https://camo.githubusercontent.com/eb005363bda440d1e5a2ba01ee729aac6471c5927ee5b89a9289ce09ab53fae8/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f53796d666f6e792d253545352e342d3333333f7374796c653d666c61742d737175617265266c6f676f3d73796d666f6e79 "Supports Symfony ^5.4")](https://github.com/Aerendir/bundle-aws-ses-monitor/actions?query=branch%3Adev "Supports Symfony ^5.4") [![](https://camo.githubusercontent.com/5ff3e72a5cdb413dcb81412c452389b639e7797910635cfebb8104c1e696809c/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f53796d666f6e792d253545362e302d3333333f7374796c653d666c61742d737175617265266c6f676f3d73796d666f6e79 "Supports Symfony ^6.0")](https://github.com/Aerendir/bundle-aws-ses-monitor/actions?query=branch%3Adev "Supports Symfony ^6.0")

 Tested with: [![](https://camo.githubusercontent.com/152f8cb6191d2308b19e8962cbcefc2cf04a6606af6f40163c7ef74ba4499c63/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f53796d666f6e792d253545342e342d3333333f7374796c653d666c61742d737175617265266c6f676f3d73796d666f6e79 "Tested with Symfony ^4.4")](https://github.com/Aerendir/bundle-aws-ses-monitor/actions?query=branch%3Adev "Tested with Symfony ^4.4") [![](https://camo.githubusercontent.com/eb005363bda440d1e5a2ba01ee729aac6471c5927ee5b89a9289ce09ab53fae8/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f53796d666f6e792d253545352e342d3333333f7374796c653d666c61742d737175617265266c6f676f3d73796d666f6e79 "Tested with Symfony ^5.4")](https://github.com/Aerendir/bundle-aws-ses-monitor/actions?query=branch%3Adev "Tested with Symfony ^5.4") [![](https://camo.githubusercontent.com/5ff3e72a5cdb413dcb81412c452389b639e7797910635cfebb8104c1e696809c/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f53796d666f6e792d253545362e302d3333333f7374796c653d666c61742d737175617265266c6f676f3d73796d666f6e79 "Tested with Symfony ^6.0")](https://github.com/Aerendir/bundle-aws-ses-monitor/actions?query=branch%3Adev "Tested with Symfony ^6.0")

 [![](https://camo.githubusercontent.com/69049a389381ab857eccab84cf5ecd498c5585ceb08d6c1248817c5bb23eed93/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f53756767657374732d6578742d2d69636f6e762d2532333838393242463f7374796c653d666c61742d737175617265266c6f676f3d706870)](https://www.php.net/manual/en/book.iconv.php) [![](https://camo.githubusercontent.com/0d1490a951396d9f7cc9b62b5f8b4432a5e22a9ebee5362333948895ca70c13b/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f53756767657374732d6578742d2d696e746c2d2532333838393242463f7374796c653d666c61742d737175617265266c6f676f3d706870)](https://www.php.net/manual/en/book.intl.php) [![](https://camo.githubusercontent.com/e1c4bce134f3023f0e322e59f6ae00c5727f21dbbf0138c6dafe938c5670c3e1/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f53756767657374732d6578742d2d6a736f6e2d2532333838393242463f7374796c653d666c61742d737175617265266c6f676f3d706870)](https://www.php.net/manual/en/book.json.php) [![](https://camo.githubusercontent.com/04e7139e5ffbef2b9f54e8c0bbc6afd647d7cfc694078e24ab7071a8a70c08d7/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f53756767657374732d736572656e6469706974795f5f68712f636f6d706f6e656e742d2d746578742d2d6d61747269782d2532333838393242463f7374796c653d666c61742d737175617265)](https://camo.githubusercontent.com/04e7139e5ffbef2b9f54e8c0bbc6afd647d7cfc694078e24ab7071a8a70c08d7/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f53756767657374732d736572656e6469706974795f5f68712f636f6d706f6e656e742d2d746578742d2d6d61747269782d2532333838393242463f7374796c653d666c61742d737175617265)

Current Status
--------------

[](#current-status)

[![Coverage](https://camo.githubusercontent.com/cb1c2654c5cb38eae325b1737d7dcd80572fd35aeef52b9165f155c54e15adbb/68747470733a2f2f736f6e6172636c6f75642e696f2f6170692f70726f6a6563745f6261646765732f6d6561737572653f70726f6a6563743d416572656e6469725f62756e646c652d6665617475726573266d65747269633d636f766572616765)](https://sonarcloud.io/dashboard?id=Aerendir_bundle-features)[![Maintainability Rating](https://camo.githubusercontent.com/17fbcee23eb674a93362ea7a6541c2c90336f51a61c3b3aff9cfe26644046d4c/68747470733a2f2f736f6e6172636c6f75642e696f2f6170692f70726f6a6563745f6261646765732f6d6561737572653f70726f6a6563743d416572656e6469725f62756e646c652d6665617475726573266d65747269633d7371616c655f726174696e67)](https://sonarcloud.io/dashboard?id=Aerendir_bundle-features)[![Quality Gate Status](https://camo.githubusercontent.com/de86aac9ea3ebf0d6d951037866f7940477095f24f40966130f292b1aa1a27aa/68747470733a2f2f736f6e6172636c6f75642e696f2f6170692f70726f6a6563745f6261646765732f6d6561737572653f70726f6a6563743d416572656e6469725f62756e646c652d6665617475726573266d65747269633d616c6572745f737461747573)](https://sonarcloud.io/dashboard?id=Aerendir_bundle-features)[![Reliability Rating](https://camo.githubusercontent.com/0d700a0f31aec2ec5564a3bf9783cd6c633ff70f87ae4318b8d37e81c1697d1d/68747470733a2f2f736f6e6172636c6f75642e696f2f6170692f70726f6a6563745f6261646765732f6d6561737572653f70726f6a6563743d416572656e6469725f62756e646c652d6665617475726573266d65747269633d72656c696162696c6974795f726174696e67)](https://sonarcloud.io/dashboard?id=Aerendir_bundle-features)[![Security Rating](https://camo.githubusercontent.com/1112c2909aff43e89d37345946cc1c0bef4a4672ec67f148c7ac2edc239d7c93/68747470733a2f2f736f6e6172636c6f75642e696f2f6170692f70726f6a6563745f6261646765732f6d6561737572653f70726f6a6563743d416572656e6469725f62756e646c652d6665617475726573266d65747269633d73656375726974795f726174696e67)](https://sonarcloud.io/dashboard?id=Aerendir_bundle-features)[![Technical Debt](https://camo.githubusercontent.com/4680d92685235fef6c5c71e4c5907ee9bbf74b6df7a1030714cc6f69a61dd36d/68747470733a2f2f736f6e6172636c6f75642e696f2f6170692f70726f6a6563745f6261646765732f6d6561737572653f70726f6a6563743d416572656e6469725f62756e646c652d6665617475726573266d65747269633d7371616c655f696e646578)](https://sonarcloud.io/dashboard?id=Aerendir_bundle-features)[![Vulnerabilities](https://camo.githubusercontent.com/d96a86437880a447a8b41f250bc707f6aa81c997619cde19e05b7983eebb6490/68747470733a2f2f736f6e6172636c6f75642e696f2f6170692f70726f6a6563745f6261646765732f6d6561737572653f70726f6a6563743d416572656e6469725f62756e646c652d6665617475726573266d65747269633d76756c6e65726162696c6974696573)](https://sonarcloud.io/dashboard?id=Aerendir_bundle-features)

[![Phan](https://github.com/Aerendir/bundle-features/workflows/Phan/badge.svg)](https://github.com/Aerendir/bundle-features/actions?query=branch%3Adev)[![PHPStan](https://github.com/Aerendir/bundle-features/workflows/PHPStan/badge.svg)](https://github.com/Aerendir/bundle-features/actions?query=branch%3Adev)[![PSalm](https://github.com/Aerendir/bundle-features/workflows/PSalm/badge.svg)](https://github.com/Aerendir/bundle-features/actions?query=branch%3Adev)[![PHPUnit](https://github.com/Aerendir/bundle-features/workflows/PHPunit/badge.svg)](https://github.com/Aerendir/bundle-features/actions?query=branch%3Adev)[![Composer](https://github.com/Aerendir/bundle-features/workflows/Composer/badge.svg)](https://github.com/Aerendir/bundle-features/actions?query=branch%3Adev)[![PHP CS Fixer](https://github.com/Aerendir/bundle-features/workflows/PHP%20CS%20Fixer/badge.svg)](https://github.com/Aerendir/bundle-features/actions?query=branch%3Adev)[![Rector](https://github.com/Aerendir/bundle-features/workflows/Rector/badge.svg)](https://github.com/Aerendir/bundle-features/actions?query=branch%3Adev)

Features
--------

[](#features)

Serendipity HQ Features Bundle gives you the ability to configure the features you need to manage, give them a price if they are premium ones, create invoices for them and save subscriptions and configurations associated to your entities to give each of your users only the features they have to get.

---

###  **Do you like this bundle?**
 **[LEAVE A ★](#js-repo-pjax-container)**

[](#----do-you-like-this-bundle----leave-a-)

 or run
 `composer global require symfony/thanks && composer thanks`
 to say thank you to all libraries you use in your current project, this included!

---

Basic usage
-----------

[](#basic-usage)

SerendipityHQ Features Bundle divides the features in three macro-categories:

- Boolean features: are features or configurations that can be switched on or off. For example, "send an e-mail on \[event\_name\]".
- Countable Features: are features that can be increased or decreased in number. For example, the number of users that can be added.
- Rechargeable Features: Are features of which it is possible to run out. For example, "You have X invites left".

These are the three main categories in which all kind of features or configurations can fall in (if you find other macro categories, feel free to suggest them in the issues!).

These features can be configured in your configuration file and then can be managed through your app to make it able to do some things or not to do things.

Features are grouped in sets, this way you can better manage your features without going crazy and without be confused.

For example, lets say you are building a project management app, you may want to have a set of features for the profile of each user and a set of features specific for projects.

Grouping features in sets you can manage them in an easier way.

Those are the very base concepts to understand and are the core of the internal working of the Serendipity HQ Features Bundle.

Read more in the documentation to better understand how all this work toward your feature management in your app.

Install Serendipity HQ Features Bundle via Composer
---------------------------------------------------

[](#install-serendipity-hq-features-bundle-via-composer)

```
$ composer require serendipity_hq/bundle-features

```

This library follows the  versioning conventions.

Documentation
-------------

[](#documentation)

You can read how to install, configure, test and use the SerendipityHQ Features Bundle in the [documentation](docs/Index.md).

Inspiration for future features

-
-

Some other information

-

---

###  **Do you like this bundle?**
 **[LEAVE A ★](#js-repo-pjax-container)**

[](#----do-you-like-this-bundle----leave-a--1)

 or run
 `composer global require symfony/thanks && composer thanks`
 to say thank you to all libraries you use in your current project, this included!

---

###  Health Score

37

—

LowBetter than 82% of packages

Maintenance28

Infrequent updates — may be unmaintained

Popularity22

Limited adoption so far

Community11

Small or concentrated contributor base

Maturity71

Established project with proven stability

 Bus Factor2

2 contributors hold 50%+ of commits

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

Recently: every ~38 days

Total

50

Last Release

415d ago

PHP version history (8 changes)0.1.0PHP ~7.0

0.6.0PHP ^7

0.9.0PHP ^7.1

0.11.0PHP ^7.2

0.12.0PHP ^7.3

0.12.3PHP ^7.3|^8.0

0.12.4PHP ^7.4|^8.0

0.12.9PHP ^8.0

### Community

Maintainers

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

---

Top Contributors

[![dependabot[bot]](https://avatars.githubusercontent.com/in/29110?v=4)](https://github.com/dependabot[bot] "dependabot[bot] (590 commits)")[![Aerendir](https://avatars.githubusercontent.com/u/1968622?v=4)](https://github.com/Aerendir "Aerendir (516 commits)")[![kodiakhq[bot]](https://avatars.githubusercontent.com/in/29196?v=4)](https://github.com/kodiakhq[bot] "kodiakhq[bot] (503 commits)")

---

Tags

phpsymfonysymfony-bundlepricingplanspaidfeatures gating

###  Code Quality

Static AnalysisPHPStan, Rector

Type Coverage Yes

### Embed Badge

![Health badge](/badges/serendipity-hq-features-bundle/health.svg)

```
[![Health](https://phpackages.com/badges/serendipity-hq-features-bundle/health.svg)](https://phpackages.com/packages/serendipity-hq-features-bundle)
```

###  Alternatives

[sylius/sylius

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

8.4k5.6M647](/packages/sylius-sylius)[serendipity_hq/bundle-features

Manage features and plans in your Symfony app.

1184.3k](/packages/serendipity-hq-bundle-features)[prestashop/prestashop

PrestaShop is an Open Source e-commerce platform, committed to providing the best shopping cart experience for both merchants and customers.

9.0k15.4k](/packages/prestashop-prestashop)[ec-cube/ec-cube

EC-CUBE EC open platform.

78527.0k1](/packages/ec-cube-ec-cube)[contao/core-bundle

Contao Open Source CMS

1231.6M2.3k](/packages/contao-core-bundle)[netgen/layouts-core

Netgen Layouts enables you to build and manage complex web pages in a simpler way and with less coding. This is the core of Netgen Layouts, its heart and soul.

3689.4k10](/packages/netgen-layouts-core)

PHPackages © 2026

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