aladler/laravel-pennant-session-and-db-driver

Laravel Pennant 的 '会话 & 数据库驱动',用于在用户身份验证前后设置功能标志。

v0.1.3 2024-03-19 15:44 UTC

This package is auto-updated.

Last update: 2024-09-19 17:05:51 UTC


README

Build Status Total Downloads Latest Stable Version License

介绍

Laravel Pennant 的 '会话 & 数据库驱动',用于在用户身份验证前后设置功能标志。

要求

  • Laravel 10 或更高版本
  • PHP 8.1 或更高版本
  • Pennant 1.6 或更高版本

安装

您可以通过 composer 安装此包

composer require aladler/laravel-pennant-session-and-db-driver

将驱动程序添加到您的 config/pennant.php 文件中

'stores' => [

    'session_and_database' => [
        'driver' => 'session_and_database',
        'table' => 'features',
    ],

],

使用 Pennant 的 extend 方法注册驱动程序(这可以在 AppServiceProviderboot 方法中完成)

public function boot(): void
{
    Feature::extend('session_and_database', function (){
        return new SessionAndDatabaseDriver(
            app()['db'],
            app()['events'],
            config(),
            [],
            app()['session']
        );
    });
}

如果您希望此驱动程序为默认驱动程序,请将 config/pennant.php 中的 default 值更改为 session_and_database

'default' => env('PENNANT_STORE', 'session_and_database'),

或者将其放在您的 .env 文件中

PENNANT_STORE=session_and_database

您的用户模型(或任何其他 Authenticatable)必须实现 Aladler\LaravelPennantSessionAndDbDriver\Contracts\UserThatHasPreRegisterFeatures 接口。

class User extends Authenticable implements UserThatHasPreRegisterFeatures

使用方法

您可以为访客和身份验证后激活功能,该功能将持久保存在数据库中。或者,如果用户登录时激活了功能,在用户登出(或在同一设备上会话超时)后,该功能对他们仍然有效。这允许在注册流程中进行 A/B 测试功能,并在注册完成后保持相同的体验。

许可证

此开源软件根据 MIT 许可证 许可。