Skip to content
This repository was archived by the owner on Jun 23, 2025. It is now read-only.
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
18 changes: 9 additions & 9 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
# Laravel Unleash

[![Codacy Badge](https://api.codacy.com/project/badge/Grade/56b0c6402eca49169cbeb3f404c2bff9)](https://app.codacy.com/manual/mikefrancis/laravel-unleash?utm_source=github.com&utm_medium=referral&utm_content=mikefrancis/laravel-unleash&utm_campaign=Badge_Grade_Dashboard)
[![Packagist](https://img.shields.io/packagist/v/mikefrancis/laravel-unleash)](https://packagist.org/packages/mikefrancis/laravel-unleash) [![Build Status](https://github.com/mikefrancis/laravel-unleash/workflows/CI/badge.svg)](https://github.com/mikefrancis/laravel-unleash/actions?query=workflow%3ACI) [![codecov](https://codecov.io/gh/mikefrancis/laravel-unleash/branch/master/graph/badge.svg)](https://codecov.io/gh/mikefrancis/laravel-unleash)
[![Codacy Badge](https://api.codacy.com/project/badge/Grade/56b0c6402eca49169cbeb3f404c2bff9)](https://app.codacy.com/manual/laravel-unleash/laravel-unleash?utm_source=github.com&utm_medium=referral&utm_content=laravel-unleash/laravel-unleash&utm_campaign=Badge_Grade_Dashboard)
[![Packagist](https://img.shields.io/packagist/v/laravel-unleash/laravel-unleash)](https://packagist.org/packages/laravel-unleash/laravel-unleash) [![Build Status](https://github.com/laravel-unleash/laravel-unleash/workflows/CI/badge.svg)](https://github.com/laravel-unleash/laravel-unleash/actions?query=workflow%3ACI) [![codecov](https://codecov.io/gh/laravel-unleash/laravel-unleash/branch/main/graph/badge.svg)](https://codecov.io/gh/laravel-unleash/laravel-unleash)

An [Unleash](https://unleash.github.io) client for Laravel.

Expand All @@ -14,17 +14,17 @@ composer require mikefrancis/laravel-unleash
Export package config:

```bash
php artisan vendor:publish --provider="MikeFrancis\LaravelUnleash\ServiceProvider"
php artisan vendor:publish --provider="LaravelUnleash\ServiceProvider"
```

## Configuration

Documentation for configuration can be found in [config/unleash.php](https://github.com/mikefrancis/laravel-unleash/blob/master/config/unleash.php).
Documentation for configuration can be found in [config/unleash.php](https://github.com/laravel-unleash/laravel-unleash/blob/main/config/unleash.php).

## Usage

```php
use \MikeFrancis\LaravelUnleash\Unleash;
use LaravelUnleash\Unleash;

$unleash = app(Unleash::class);

Expand Down Expand Up @@ -84,7 +84,7 @@ $allFeatures = Feature::all();
If your strategy relies on dynamic data at runtime, you can pass additional arguments to the feature check functions:

```php
use \MikeFrancis\LaravelUnleash\Unleash;
use LaravelUnleash\Unleash;
use Config;

$unleash = app(Unleash::class);
Expand Down Expand Up @@ -129,8 +129,8 @@ To use the middle, add the following to your `app/Http/Kernel.php`:
```php
protected $routeMiddleware = [
// other middleware
'feature.enabled' => \MikeFrancis\LaravelUnleash\Middleware\FeatureEnabled::class,
'feature.disabled' => \MikeFrancis\LaravelUnleash\Middleware\FeatureDisabled::class,
'feature.enabled' => \LaravelUnleash\Middleware\FeatureEnabled::class,
'feature.disabled' => \LaravelUnleash\Middleware\FeatureDisabled::class,
];
```

Expand Down Expand Up @@ -160,4 +160,4 @@ class ExampleController extends Controller
}
```

You cannot currently use dynamic strategy arguments with Middleware.
You cannot currently use dynamic strategy arguments with Middleware.
10 changes: 5 additions & 5 deletions composer.json
Original file line number Diff line number Diff line change
Expand Up @@ -14,12 +14,12 @@
},
"autoload": {
"psr-4": {
"MikeFrancis\\LaravelUnleash\\": "src/"
"LaravelUnleash\\": "src/"
}
},
"autoload-dev": {
"psr-4": {
"MikeFrancis\\LaravelUnleash\\Tests\\": "tests/"
"LaravelUnleash\\Tests\\": "tests/"
}
},
"license": "MIT",
Expand All @@ -32,11 +32,11 @@
"extra": {
"laravel": {
"providers": [
"MikeFrancis\\LaravelUnleash\\ServiceProvider"
"LaravelUnleash\\ServiceProvider"
],
"aliases": {
"Unleash": "MikeFrancis\\LaravelUnleash\\Facades\\Unleash",
"Feature": "MikeFrancis\\LaravelUnleash\\Facades\\Feature"
"Unleash": "LaravelUnleash\\Facades\\Unleash",
"Feature": "LaravelUnleash\\Facades\\Feature"
}
}
}
Expand Down
12 changes: 6 additions & 6 deletions config/unleash.php
Original file line number Diff line number Diff line change
Expand Up @@ -38,13 +38,13 @@

// Mapping of strategies used to guard features on Unleash. The default strategies are already
// mapped below, and more strategies can be added - they just need to implement the
// `\MikeFrancis\LaravelUnleash\Strategies\Strategy` or
// `\MikeFrancis\LaravelUnleash\Strategies\DynamicStrategy` interface. If you would like to disable
// `\LaravelUnleash\Strategies\Strategy` or
// `\LaravelUnleash\Strategies\DynamicStrategy` interface. If you would like to disable
// a built-in strategy, please comment it out or remove it below.
'strategies' => [
'applicationHostname' => \MikeFrancis\LaravelUnleash\Strategies\ApplicationHostnameStrategy::class,
'default' => \MikeFrancis\LaravelUnleash\Strategies\DefaultStrategy::class,
'remoteAddress' => \MikeFrancis\LaravelUnleash\Strategies\RemoteAddressStrategy::class,
'userWithId' => \MikeFrancis\LaravelUnleash\Strategies\UserWithIdStrategy::class,
'applicationHostname' => \LaravelUnleash\Strategies\ApplicationHostnameStrategy::class,
'default' => \LaravelUnleash\Strategies\DefaultStrategy::class,
'remoteAddress' => \LaravelUnleash\Strategies\RemoteAddressStrategy::class,
'userWithId' => \LaravelUnleash\Strategies\UserWithIdStrategy::class,
],
];
2 changes: 1 addition & 1 deletion src/Client.php
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
<?php

namespace MikeFrancis\LaravelUnleash;
namespace LaravelUnleash;

use GuzzleHttp\Client as GuzzleClient;
use Illuminate\Contracts\Config\Repository as Config;
Expand Down
2 changes: 1 addition & 1 deletion src/Facades/Feature.php
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
<?php
namespace MikeFrancis\LaravelUnleash\Facades;
namespace LaravelUnleash\Facades;

use Illuminate\Support\Facades\Facade;

Expand Down
2 changes: 1 addition & 1 deletion src/Facades/Unleash.php
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
<?php
namespace MikeFrancis\LaravelUnleash\Facades;
namespace LaravelUnleash\Facades;

use Illuminate\Support\Facades\Facade;

Expand Down
4 changes: 2 additions & 2 deletions src/Middleware/FeatureDisabled.php
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
<?php

namespace MikeFrancis\LaravelUnleash\Middleware;
namespace LaravelUnleash\Middleware;

use Closure;
use Illuminate\Http\Request;
use MikeFrancis\LaravelUnleash\Facades\Feature;
use LaravelUnleash\Facades\Feature;

class FeatureDisabled
{
Expand Down
4 changes: 2 additions & 2 deletions src/Middleware/FeatureEnabled.php
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
<?php

namespace MikeFrancis\LaravelUnleash\Middleware;
namespace LaravelUnleash\Middleware;

use Closure;
use Illuminate\Http\Request;
use MikeFrancis\LaravelUnleash\Facades\Feature;
use LaravelUnleash\Facades\Feature;

class FeatureEnabled
{
Expand Down
6 changes: 3 additions & 3 deletions src/ServiceProvider.php
Original file line number Diff line number Diff line change
@@ -1,11 +1,11 @@
<?php

namespace MikeFrancis\LaravelUnleash;
namespace LaravelUnleash;

use Illuminate\Support\Facades\Blade;
use Illuminate\Support\ServiceProvider as IlluminateServiceProvider;
use MikeFrancis\LaravelUnleash\Unleash;
use MikeFrancis\LaravelUnleash\Client;
use LaravelUnleash\Unleash;
use LaravelUnleash\Client;
use GuzzleHttp\ClientInterface;

class ServiceProvider extends IlluminateServiceProvider
Expand Down
4 changes: 2 additions & 2 deletions src/Strategies/ApplicationHostnameStrategy.php
Original file line number Diff line number Diff line change
@@ -1,11 +1,11 @@
<?php

namespace MikeFrancis\LaravelUnleash\Strategies;
namespace LaravelUnleash\Strategies;

use Illuminate\Http\Request;
use Illuminate\Support\Arr;
use Illuminate\Support\Str;
use MikeFrancis\LaravelUnleash\Strategies\Contracts\Strategy;
use LaravelUnleash\Strategies\Contracts\Strategy;

class ApplicationHostnameStrategy implements Strategy
{
Expand Down
2 changes: 1 addition & 1 deletion src/Strategies/Contracts/DynamicStrategy.php
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
<?php

namespace MikeFrancis\LaravelUnleash\Strategies\Contracts;
namespace LaravelUnleash\Strategies\Contracts;

use Illuminate\Http\Request;

Expand Down
2 changes: 1 addition & 1 deletion src/Strategies/Contracts/Strategy.php
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
<?php

namespace MikeFrancis\LaravelUnleash\Strategies\Contracts;
namespace LaravelUnleash\Strategies\Contracts;

use Illuminate\Http\Request;

Expand Down
4 changes: 2 additions & 2 deletions src/Strategies/DefaultStrategy.php
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
<?php

namespace MikeFrancis\LaravelUnleash\Strategies;
namespace LaravelUnleash\Strategies;

use Illuminate\Http\Request;
use MikeFrancis\LaravelUnleash\Strategies\Contracts\Strategy;
use LaravelUnleash\Strategies\Contracts\Strategy;

class DefaultStrategy implements Strategy
{
Expand Down
4 changes: 2 additions & 2 deletions src/Strategies/RemoteAddressStrategy.php
Original file line number Diff line number Diff line change
@@ -1,11 +1,11 @@
<?php

namespace MikeFrancis\LaravelUnleash\Strategies;
namespace LaravelUnleash\Strategies;

use Illuminate\Http\Request;
use Illuminate\Support\Arr;
use Illuminate\Support\Str;
use MikeFrancis\LaravelUnleash\Strategies\Contracts\Strategy;
use LaravelUnleash\Strategies\Contracts\Strategy;

class RemoteAddressStrategy implements Strategy
{
Expand Down
4 changes: 2 additions & 2 deletions src/Strategies/UserWithIdStrategy.php
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
<?php

namespace MikeFrancis\LaravelUnleash\Strategies;
namespace LaravelUnleash\Strategies;

use Illuminate\Http\Request;
use Illuminate\Support\Arr;
use MikeFrancis\LaravelUnleash\Strategies\Contracts\Strategy;
use LaravelUnleash\Strategies\Contracts\Strategy;

class UserWithIdStrategy implements Strategy
{
Expand Down
6 changes: 3 additions & 3 deletions src/Unleash.php
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
<?php

namespace MikeFrancis\LaravelUnleash;
namespace LaravelUnleash;

use GuzzleHttp\ClientInterface;
use GuzzleHttp\Exception\InvalidArgumentException;
Expand All @@ -9,8 +9,8 @@
use Illuminate\Contracts\Config\Repository as Config;
use Illuminate\Http\Request;
use Illuminate\Support\Arr;
use MikeFrancis\LaravelUnleash\Strategies\Contracts\DynamicStrategy;
use MikeFrancis\LaravelUnleash\Strategies\Contracts\Strategy;
use LaravelUnleash\Strategies\Contracts\DynamicStrategy;
use LaravelUnleash\Strategies\Contracts\Strategy;
use Symfony\Component\HttpFoundation\Exception\JsonException;
use function GuzzleHttp\json_decode;

Expand Down
4 changes: 2 additions & 2 deletions tests/Strategies/ApplicationHostnameStrategyTest.php
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
<?php

namespace MikeFrancis\LaravelUnleash\Tests\Strategies;
namespace LaravelUnleash\Tests\Strategies;

use Illuminate\Http\Request;
use MikeFrancis\LaravelUnleash\Strategies\ApplicationHostnameStrategy;
use LaravelUnleash\Strategies\ApplicationHostnameStrategy;
use PHPUnit\Framework\TestCase;

class ApplicationHostnameStrategyTest extends TestCase
Expand Down
4 changes: 2 additions & 2 deletions tests/Strategies/DefaultStrategyTest.php
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
<?php

namespace MikeFrancis\LaravelUnleash\Tests\Strategies;
namespace LaravelUnleash\Tests\Strategies;

use Illuminate\Contracts\Auth\Guard;
use Illuminate\Http\Request;
use MikeFrancis\LaravelUnleash\Strategies\DefaultStrategy;
use LaravelUnleash\Strategies\DefaultStrategy;
use PHPUnit\Framework\TestCase;
use stdClass;

Expand Down
6 changes: 3 additions & 3 deletions tests/Strategies/DynamicStrategyTest.php
Original file line number Diff line number Diff line change
@@ -1,15 +1,15 @@
<?php

namespace MikeFrancis\LaravelUnleash\Tests\Strategies;
namespace LaravelUnleash\Tests\Strategies;

use GuzzleHttp\Client;
use GuzzleHttp\Handler\MockHandler;
use GuzzleHttp\Psr7\Response;
use Illuminate\Contracts\Cache\Repository as Cache;
use Illuminate\Contracts\Config\Repository as Config;
use Illuminate\Http\Request;
use MikeFrancis\LaravelUnleash\Tests\Stubs\ImplementedStrategy;
use MikeFrancis\LaravelUnleash\Unleash;
use LaravelUnleash\Tests\Stubs\ImplementedStrategy;
use LaravelUnleash\Unleash;
use PHPUnit\Framework\TestCase;

class DynamicStrategyTest extends TestCase
Expand Down
4 changes: 2 additions & 2 deletions tests/Strategies/RemoteAddressStrategyTest.php
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
<?php

namespace MikeFrancis\LaravelUnleash\Tests\Strategies;
namespace LaravelUnleash\Tests\Strategies;

use Illuminate\Http\Request;
use MikeFrancis\LaravelUnleash\Strategies\RemoteAddressStrategy;
use LaravelUnleash\Strategies\RemoteAddressStrategy;
use PHPUnit\Framework\TestCase;

class RemoteAddressStrategyTest extends TestCase
Expand Down
4 changes: 2 additions & 2 deletions tests/Strategies/UserWithIdStrategyTest.php
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
<?php

namespace MikeFrancis\LaravelUnleash\Tests\Strategies;
namespace LaravelUnleash\Tests\Strategies;

use Illuminate\Contracts\Auth\Authenticatable;
use Illuminate\Http\Request;
use MikeFrancis\LaravelUnleash\Strategies\UserWithIdStrategy;
use LaravelUnleash\Strategies\UserWithIdStrategy;
use PHPUnit\Framework\TestCase;

class UserWithIdStrategyTest extends TestCase
Expand Down
4 changes: 2 additions & 2 deletions tests/Stubs/ImplementedStrategy.php
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
<?php

namespace MikeFrancis\LaravelUnleash\Tests\Stubs;
namespace LaravelUnleash\Tests\Stubs;

use Illuminate\Http\Request;
use MikeFrancis\LaravelUnleash\Strategies\Contracts\Strategy;
use LaravelUnleash\Strategies\Contracts\Strategy;

class ImplementedStrategy implements Strategy
{
Expand Down
4 changes: 2 additions & 2 deletions tests/Stubs/ImplementedStrategyThatIsDisabled.php
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
<?php

namespace MikeFrancis\LaravelUnleash\Tests\Stubs;
namespace LaravelUnleash\Tests\Stubs;

use Illuminate\Http\Request;
use MikeFrancis\LaravelUnleash\Strategies\Contracts\Strategy;
use LaravelUnleash\Strategies\Contracts\Strategy;

class ImplementedStrategyThatIsDisabled implements Strategy
{
Expand Down
2 changes: 1 addition & 1 deletion tests/Stubs/NonImplementedStrategy.php
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
<?php

namespace MikeFrancis\LaravelUnleash\Tests\Stubs;
namespace LaravelUnleash\Tests\Stubs;

use Illuminate\Http\Request;

Expand Down
10 changes: 5 additions & 5 deletions tests/UnleashTest.php
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
<?php

namespace MikeFrancis\LaravelUnleash\Tests;
namespace LaravelUnleash\Tests;

use Exception;
use GuzzleHttp\Client;
Expand All @@ -9,10 +9,10 @@
use Illuminate\Contracts\Cache\Repository as Cache;
use Illuminate\Contracts\Config\Repository as Config;
use Illuminate\Http\Request;
use MikeFrancis\LaravelUnleash\Tests\Stubs\ImplementedStrategy;
use MikeFrancis\LaravelUnleash\Tests\Stubs\ImplementedStrategyThatIsDisabled;
use MikeFrancis\LaravelUnleash\Tests\Stubs\NonImplementedStrategy;
use MikeFrancis\LaravelUnleash\Unleash;
use LaravelUnleash\Tests\Stubs\ImplementedStrategy;
use LaravelUnleash\Tests\Stubs\ImplementedStrategyThatIsDisabled;
use LaravelUnleash\Tests\Stubs\NonImplementedStrategy;
use LaravelUnleash\Unleash;
use PHPUnit\Framework\TestCase;
use Symfony\Component\HttpFoundation\Exception\JsonException;

Expand Down