Wistrix/laravel-onboard

Laravel 包,用于跟踪入门步骤。

v1.1.1 2024-04-28 19:39 UTC

This package is auto-updated.

Last update: 2024-09-08 17:30:31 UTC


README

安装

您可以通过 Composer 安装此包

composer require wistrix/laravel-onboard

用法

Wistrix\Onboard\Concerns\Onboardable 接口和 Wistrix\Onboard\Concerns\Onboard 特性添加到您需要的模型中。

...
use Wistrix\Onboard\Concerns\Onboardable;
use Wistrix\Onboard\Concerns\Onboard;
...

class User extends Model implements Onboardable
{
    use Onboard;
    ...

配置

您可以使用 Wistrix\Onboard\Facades\Onboard 门面来配置您的入门步骤。使用默认的 App\Providers\AppServiceProvider.php 或创建一个新的服务提供者。

...
use App\Models\User;
use Wistrix\Onboard\Facades\Onboard;
...

class AppServiceProvider extends ServiceProvider
{
    /**
     * Bootstrap any application services.
     */
    public function boot(): void
    {
        Onboard::register(
            model: User::class, 
            route: 'onboarding.name', 
            validate: fn (User $model) => ! empty($model->name) 
        );
        
        Onboard::register(
            model: User::class, 
            route: 'onboarding.username', 
            validate: fn (User $model) => ! empty($model->username) 
        );

    }
}

中间件

创建一个新的中间件并扩展抽象类 Wistrix\Onboard\Middleware

use Illuminate\Http\Request;
use Wistrix\Onboard\Concerns\Onboardable;
use Wistrix\Onboard\Middleware;

class UserOnboarding extends Middleware
{
    /**
     * Get the onboardable model.
     *
     * @param Request $request
     * @return Onboardable|null
     */
    protected function uses(Request $request): ? Onboardable
    {
        return $request->user();
    }
}

默认路由

默认情况下,Wistrix\Onboard\Middleware 类定义了默认路由 home,如果入门完成且访问了步骤路由,则会重定向用户。这可以通过向您的中间件添加 defaultRoute 方法来自定义。

/**
 * Get the default route.
 *
 * @return string
 */
protected function defaultRoute(): string
{
    return 'home';
}

忽略路由

您可以通过添加 ignoreRoutes 方法来定义要忽略的路由。如果您通过 bootstrap/app.php 配置注册了中间件并希望忽略例如 logout 路由,这将很有用。

/**
 * Get the ignore routes.
 *
 * @return array
 */
protected function ignoreRoutes(): array
{
    return ['logout'];
}

测试

composer test

变更日志

有关更多信息,请参阅CHANGELOG

安全

如果您发现一个安全漏洞,请通过 GitHub 问题 提交。

许可

MIT 许可证 (MIT)。

有关更多信息,请参阅许可文件