aladler / laravel-pennant-session-and-db-driver
Laravel Pennant 的 '会话 & 数据库驱动',用于在用户身份验证前后设置功能标志。
v0.1.3
2024-03-19 15:44 UTC
Requires
- php: >=8.2
- laravel/pennant: ^1.6
Requires (Dev)
- laravel/pint: ^1.13
- orchestra/testbench: ^9.0
- pestphp/pest: ^2.19
- pestphp/pest-plugin-laravel: ^2.2
README
介绍
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
方法注册驱动程序(这可以在 AppServiceProvider
的 boot
方法中完成)
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 许可证 许可。