marvinlabs/laravel-setup-wizard

Laravel应用的网络设置向导

0.2.1 2017-04-12 21:58 UTC

This package is not auto-updated.

Last update: 2024-09-14 18:53:04 UTC


README

一个帮助您为应用程序构建网络设置向导的Laravel包

设置

将包添加到您的项目中

composer require marvinlabs/laravel-setup-wizard

声明服务提供者和别名

将以下行添加到您的 config/app.php 文件中

'providers' => [
    // ...
    // Other Service Providers
    // ...
    MarvinLabs\SetupWizard\ServiceProvider::class,
],

'aliases' => [
    // ...
    // Other aliases
    // ...
    'SetupWizard' => MarvinLabs\SetupWizard\Facades\SetupWizard::class,
],

声明所需的中间件

将以下行添加到您的 app/Http/Kernel.php 文件中

protected $middlewareGroups = [
    // ...
    // Other Middleware
    // ...

    'setup_wizard' => [
        \Illuminate\Session\Middleware\StartSession::class,
        \Illuminate\View\Middleware\ShareErrorsFromSession::class,
        'setup_wizard.initializer',
    ]
];

protected $routeMiddleware = [
    // ...
    // Other Middleware
    // ...

    'setup_wizard.initializer' => \MarvinLabs\SetupWizard\Middleware\SetupWizardInitializer::class,
    'setup_wizard.trigger'     => \MarvinLabs\SetupWizard\Middleware\SetupWizardTrigger::class,
];

启用中间件以在需要时启动向导

如果您需要在需要时自动启动设置向导,您需要将 SetupWizardTrigger 中间件添加到您要保护的路线中。例如,如果您有一个用于显示管理面板的路由组,您可以在那里做

Route::group([
    'prefix'     => 'admin', 
    'middleware' => 'setup_wizard.trigger'
], function () {
        // ...
});

这样,设置向导仅在尝试访问管理面板时才会被触发。

触发设置向导的中间件应放在中间件列表的第一位

发布资产

为了正确获取CSS,您至少需要将包资产发布到您的公共目录中

php artisan vendor:publish --provider="MarvinLabs\SetupWizard\ServiceProvider" --tag="assets"

可选地,您可以发布包中的更多文件,以便能够覆盖它们。使用与任何其他包相同的Artisan命令(将发布所有供应商包中的文件)

php artisan vendor:publish

或者,您可以只发布一些包文件以覆盖所需的内容。库已将它们分为4个不同的类别(资产类别已发布)

php artisan vendor:publish --provider="MarvinLabs\SetupWizard\ServiceProvider" --tag="config"
php artisan vendor:publish --provider="MarvinLabs\SetupWizard\ServiceProvider" --tag="views"
php artisan vendor:publish --provider="MarvinLabs\SetupWizard\ServiceProvider" --tag="translations"

如果您之前已发布了一些文件并想覆盖它们,请使用上面的Artisan命令中的 --force 标志。

配置

该包的配置是通过 config/setup_wizard.php 文件完成的。每个配置选项都在该文件中进行了文档说明,因此我们在这里不会重复此信息。

添加您自己的向导步骤

您可以轻松地添加或删除向导中的步骤。

创建步骤类

最简单的方法是从我们捆绑的步骤之一开始。步骤通常将继承自 \MarvinLabs\SetupWizard\Steps\BaseStep 并必须实现一些更多方法。

getFormData()

这是将要传递到您的视图中的数据。如果您没有指定该方法,它将返回一个空数组。您在此数组中传递的数据将直接在步骤视图中作为变量可用。例如,如果您返回 [ 'myVar' => 23 ],您将能够在步骤视图中访问 $myVar

apply($formData)

在移动到下一个步骤之前调用的方法。参数 $formData 包含步骤表单提交的数据(如果有)。

该方法应返回 true 如果向导可以进入下一个步骤。如果不可以,它应返回 false 并可以通过使用方法 $this->addError('my_key', 'My error message') 提供用户反馈。

undo()

当从下一个步骤返回到此步骤时调用该方法。这基本上是撤销由 apply 方法所做的一切。

该方法应返回 true 如果向导可以返回到我们的步骤。如果不可以,它应返回 false 并可以通过使用方法 $this->addError('my_key', 'My error message') 提供用户反馈。

创建步骤视图

如果您已将步骤类注册为具有id my_step,则需要创建一个视图,该视图将在文件 resources/views/vendor/setup_wizard/partials/steps/my_step.blade.php 中找到。

创建字符串

一些字符串对于步骤正确显示是必需的:图标、标题、描述等。这些可以在文件 resources/lang/en/steps.php 中找到。您会注意到每个步骤ID都包含一些提供这些信息的字符串。

将您的步骤添加到配置中

打开 config/setup_wizard.php 并将您的步骤类添加到向导步骤列表中

    'steps' => [
        'requirements' => \MarvinLabs\SetupWizard\Steps\RequirementsStep::class,
        'folders'      => \MarvinLabs\SetupWizard\Steps\FoldersStep::class,
        'env'          => \MarvinLabs\SetupWizard\Steps\EnvFileStep::class,
        'database'     => \MarvinLabs\SetupWizard\Steps\DatabaseStep::class,
        
        'my_step'      => \App\Setup\MyStep::class',
        
        'final'        => \MarvinLabs\SetupWizard\Steps\FinalStep::class,
    ],

步骤的声明顺序就是它们将被运行的顺序。当然,您可以删除一些默认步骤。但是,您应该始终以FinalStep结束向导。该步骤将写入一个文件,这将防止设置向导在完成后再运行。这提供了安全性,因为如果存在 storage/.setup_wizard 文件,则没有人能够再次运行设置。

致谢