认识Laravel中的由Spatie创建的包——LaravelOnboard

183 阅读1分钟

LaravelOnboard是一个由Spatie创建的Laravel包,用于帮助跟踪用户的入职步骤。

🚀 spatie/laravel-onboard已经发布。
t.co/qfOeH783dL

🧑💻 @calebporzio制作了第一个版本,我们现在正在维护。@Riasvdv做了一些很好的抛光工作

下面是一个快速的例子,取自项目的readme,使用这个包来创建入职步骤。

use App\User;
use Spatie\Onboard\Facades\Onboard;
 
// You can add onboarding steps in a `boot()` method within a service provider
Onboard::addStep('Complete Profile')
    ->link('/profile')
    ->cta('Complete')
    ->completeIf(function (User $user) {
        return $user->profile->isComplete();
    });
 
Onboard::addStep('Create Your First Post')
    ->link('/post/create')
    ->cta('Create Post')
    ->completeIf(function (User $user) {
        return $user->posts->count() > 0;
    });

为了获得用户的入职状态--除其他外,该包有一个很好的API,可以访问诸如完成百分比、正在进行、完成以及关于单个步骤的细节。

 /** @var \Spatie\Onboard\OnboardingManager $onboarding **/
$onboarding = Auth::user()->onboarding();
 
$onboarding->inProgress();
 
$onboarding->percentageCompleted();
 
$onboarding->finished();
 
$onboarding->steps()->each(function($step) {
    $step->title;
    $step->cta;
    $step->link;
    $step->complete();
    $step->incomplete();
});

此外,这个软件包还支持以下功能。

  • 用自定义逻辑有条件地排除步骤
  • 在一个步骤上定义自定义属性
  • 使用中间件来确保用户在被允许使用某些功能之前完成入职培训
  • 还有更多