Download the PHP package harryjhonny/laravel-feature-flag without Composer
On this page you can find all versions of the php package harryjhonny/laravel-feature-flag. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.
Download harryjhonny/laravel-feature-flag
More information about harryjhonny/laravel-feature-flag
Files in harryjhonny/laravel-feature-flag
Package laravel-feature-flag
Short Description A Laravel package for handling feature flags
License MIT
Homepage https://github.com/harryjhonny/laravel-feature-flag
Informations about the package laravel-feature-flag
Feature Flags for Laravel
A Feature flag is sometimes also referred to as a feature toggle or feature switch. Ultimately it's a coding strategy to be used along with source control to make it easier to continuous integrate and continuous deployment. The idea of the flags works by essentially safe guarding sections of code from executing if a feature flag isn't in a switched on state.
This package aims to make implementing such flags across your application a great deal easier by providing solutions that work with not only your code but your routes, blade files, task scheduling and validations.
Installation
You can install the package via composer:
Once installed you should publish the config with the following command.
You can customise the features.php
config in a number of ways. By default four storage drivers
for the feature flags are provided, config, database, redis and chain. the first three are pretty straight forward
but the chain is essentially a composite that allows you to store across all three. For example you might want
to query a feature that's hardcoded in the config. If it does not exist it will then go on to check redis.
If it's not stored there, then it'll check the database. Afterwards it can update the other sources to improve
flag checking times.
To use the Database driver you will need to add the migration. You can do this by using the publish command.
Everything is enabled by default but if you want to turn off several features add the following method calls
to the boot method of app/Providers/AppServiceProvider.php
in your project.
To install the middleware you'll have to add it to your $routeMiddleware
inside app/Http/Kernel.php
file.
Usage
Checking feature accessibility
You can use the accessible method to check if a feature is on or off.
Blade Views
the @feature
blade directive is a simple @if
shortcut to hide or display certain parts of the view
depending on the state of the feature. A second argument flips the state e.g. it will display the contents
of the if statement if the feature is off.
Routing Middleware
The middleware will cause routes to be blocked if the specified feature does not have the correct state.
Validation Rules
Fields can be marked as required depending on if the feature is in a particular state.
Task Scheduling
Using the following will determine if a task will run on schedule depending on the state of the feature.
Artisan Commands
You may run the following commands to toggle the on or off state of the feature.
To find out the current state of the feature within the context of a console command, run the following: