PHPackages                             matthiaswilbrink/laravel-feature-toggles - 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. matthiaswilbrink/laravel-feature-toggles

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

matthiaswilbrink/laravel-feature-toggles
========================================

Toggle parts of your application on or off

0.5.0(4y ago)1529PHPPHP ^7.2CI failing

Since Apr 29Pushed 4y ago1 watchersCompare

[ Source](https://github.com/matgeroe/laravel-feature-toggles)[ Packagist](https://packagist.org/packages/matthiaswilbrink/laravel-feature-toggles)[ RSS](/packages/matthiaswilbrink-laravel-feature-toggles/feed)WikiDiscussions master Synced 2w ago

READMEChangelog (5)Dependencies (4)Versions (6)Used By (0)

Laravel feature toggles
=======================

[](#laravel-feature-toggles)

Toggle parts of you application on or off with zero downtime.

Deploy your feature at night, toggle it when your boss hits that big red button.
(big red button not included)

Features
--------

[](#features)

- Set the initial state of a feature in the config
- Use laravel's cache to limit database load
- Convenient commands to toggle features on/off

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

[](#installation)

This package is available on composer.
To install laravel-feature-toggles you can run the following command

```
composer require matthiaswilbrink/laravel-feature-toggles
```

After installation you can publish the configuration with this command

```
php artisan vendor:publish --provider="MatthiasWilbrink\FeatureToggle\Providers\FeatureToggleServiceProvider"
```

As this package uses a database to keep track of the features' state, you'll have to migrate after installing this package

```
php artisan migrate
```

Usage
-----

[](#usage)

CommandPurpose`feature:create`Read features from the config and inserts them into the database. Once inserted, it will *never* be overwritten.`feature:list`List all features in the database.`feature:enable`Enable a feature, pick from list.`feature:disable`Disable a feature, pick from list.`feature:clear-cache`Clear the feature cache, features will be stored in cache again when they are called for the first time.### Reading

[](#reading)

#### Blade

[](#blade)

A custom blade directive has been made.
In a blade file do the following:

```
[...]
@feature('name_of_my_feature_as_string')
    This will show when the feature is enabled
@endfeature
[...]
```

The else clause could also be used.

```
[...]
@feature('name_of_my_feature_as_string')
    This will show when the feature is enabled.
@else
    This will show when the feature is disabled.
@endfeature
[...]
```

#### Helper

[](#helper)

The helper function `feature(string $name)` return the state of the given feature.

```
if (feature('name_of_my_feature_as_string')){
    //do something
}
```

#### Facade

[](#facade)

An alias has been registered.

```
// Check if a feature is enabled
if (Feature::isEnabled('name_of_my_feature_as_string')){
    //do something
}

// A shorter alias
if (Feature::isOn('name_of_my_feature_as_string')){
    //do something
}
```

#### Dependency Injection

[](#dependency-injection)

Of course you can inject the FeatureManager to accomplish the same goal.

```
public function someMethod(FeatureManager $featureManager)
{
    if ($featureManager->isEnabled('name_of_my_feature_as_string')){
        //do something
    }
}
```

### Other activities

[](#other-activities)

You might also want to allow your users to enable or disable features. (Things like a Christmas theme come to mind)

```
public function turnTheSnowFlakesOn(FeatureManager $featureManager)
{
    $featureManager->enable('homepage_snowflakes_animation');
}
```

A note on caching
-----------------

[](#a-note-on-caching)

If caching is turned on, the cache is cleared and rebuild *every* time a feature is enabled/disabled.
Might the need arise you can always flush the cache with `php artisan feature:clear-cache`.
This will *only* flush the feature cache, not your regular application cache.

###  Health Score

25

—

LowBetter than 35% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity14

Limited adoption so far

Community9

Small or concentrated contributor base

Maturity49

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 61.5% 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 ~284 days

Total

5

Last Release

1528d ago

### Community

Maintainers

![](https://avatars.githubusercontent.com/u/11758128?v=4)[matgeroe](/maintainers/matgeroe)[@matgeroe](https://github.com/matgeroe)

---

Top Contributors

[![mwilbrink-hanzeict](https://avatars.githubusercontent.com/u/185896030?v=4)](https://github.com/mwilbrink-hanzeict "mwilbrink-hanzeict (8 commits)")[![matgeroe](https://avatars.githubusercontent.com/u/11758128?v=4)](https://github.com/matgeroe "matgeroe (5 commits)")

### Embed Badge

![Health badge](/badges/matthiaswilbrink-laravel-feature-toggles/health.svg)

```
[![Health](https://phpackages.com/badges/matthiaswilbrink-laravel-feature-toggles/health.svg)](https://phpackages.com/packages/matthiaswilbrink-laravel-feature-toggles)
```

###  Alternatives

[mike-bronner/laravel-model-caching

Automatic caching for Eloquent models.

2.4k161.4k2](/packages/mike-bronner-laravel-model-caching)[psalm/plugin-laravel

Psalm plugin for Laravel

3345.4M354](/packages/psalm-plugin-laravel)[aedart/athenaeum

Athenaeum is a mono repository; a collection of various PHP packages

265.2k](/packages/aedart-athenaeum)[laravel/ai

The official AI SDK for Laravel.

1.1k4.6M309](/packages/laravel-ai)[propaganistas/laravel-disposable-email

Disposable email validator

6023.2M7](/packages/propaganistas-laravel-disposable-email)[api-platform/laravel

API Platform support for Laravel

58190.1k21](/packages/api-platform-laravel)

PHPackages © 2026

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