ixudra/wizard

Laravel 5 框架的定制 PHP 向导库 - 由 Ixudra 开发

2.0.1 2018-05-24 15:57 UTC

This package is auto-updated.

Last update: 2024-08-26 06:50:18 UTC


README

Latest Version on Packagist license StyleCI Total Downloads

Laravel 5 框架的定制 PHP 向导包 - 由 Ixudra 开发。

此包可以由任何人在任何时候使用,但请注意,它针对我的个人定制工作流程进行了优化。它可能不完全适合您的项目,可能需要修改。

安装

通过 Composer 拉取此包。

    {
        "require": {
            "ixudra/wizard": "2.*"
        }
    }

将服务提供者添加到您的 config/app.php 文件中。

    'providers'     => array(

        //...
        Ixudra\Wizard\WizardServiceProvider::class,

    ),

使用 artisan 运行包迁移

    php artisan migrate --package="ixudra/wizard"

或者,您也可以使用 artisan 发布迁移

    // Publish all resources from all packages
    php artisan vendor:publish
    
    // Publish only the resources of the package
    php artisan vendor:publish --provider="Ixudra\\Wizard\\WizardServiceProvider"
    
    // Or publish one resource of the package resources at a time
    php artisan vendor:publish --provider="Ixudra\\Wizard\\WizardServiceProvider" --tag="migrations"
    php artisan vendor:publish --provider="Ixudra\\Wizard\\WizardServiceProvider" --tag="views"
    php artisan vendor:publish --provider="Ixudra\\Wizard\\WizardServiceProvider" --tag="lang"

为了创建新的流程,您可以利用由 ixudra/generators 包提供的功能。此包可用于生成各种文件,如模型和控制台,还提供了一些与该包紧密结合的特定模板。

为了使用此功能,您还需要在 config/app.php 文件中包含 ixudra/generators 包的服务提供者

    'providers'     => array(

        //...
        Ixudra\Wizard\WizardServiceProvider::class,
        Ixudra\Generators\GeneratorsServiceProvider::class,

    ),

用法

此包提供了创建应用中向导和流程的关键构建块。实际的流程需要在您的应用程序中构建,并且需要遵循特定的模式才能与之匹配。在此文档中,我将描述如何创建一个名为 ExampleFlow 的示例流程,这应该会为您创建自己的流程提供足够的信息。

步骤 1: 添加流程路由

将流程控制器添加到您的路由文件中,并包含您所需的指定前缀和中间件

    Route::group(array(), function()
    {
        // Flow controller
        Route::get(     'flows/{id}/{step?}',                       array('as' => 'flows.step',                                 'uses' => '\Ixudra\Wizard\Http\Controllers\FlowController@step' ));
        Route::post(    'flows/{id}/{step?}',                       array('as' => 'flows.step.process',                         'uses' => '\Ixudra\Wizard\Http\Controllers\FlowController@processStep' ));
    });

这两个路由将支持您流程所需的所有功能。这些路由将支持任意数量的流程,因此只需添加一次(除非在某些情况下需要针对每个流程不同的路由配置,例如中间件或路由前缀)。

步骤 2: 编写流程迁移

使用 Laravel 迁移创建新的流程。为了方便起见,您可以从 Ixudra/Wizard/database/CreateExampleFlows.php 复制此代码以获取一个头。

步骤 3: 创建流程

要创建一个新的流程,只需使用以下命令

    php artisan generate:flow example_flow first_step

这将自动在正确的文件夹中生成所有必需的流程文件,并根据传递给命令的参数填写正确的变量。第一个参数是流程的名称,第二个参数是要为此流程创建的第一个流程步骤的名称。

步骤 4: 访问流程

完成这些后,您就可以访问流程了,您可以通过 URL http://app.dev/flows/1 访问您的流程,如果未指定特定步骤,将自动重定向到第一个流程步骤。您可以添加任意多的流程步骤。要添加新的流程步骤,只需添加必要的 FlowStepHandler 类和 step.blade.php 文件,并通过迁移更新流程信息。

在流程步骤之间切换很简单。这可以通过 GET 请求(如果不需要处理)或 POST 请求(如果需要处理)来完成。

根据您的设置可能需要进行一些修改,但这将为您提供一个不错的框架,以加快您的开发过程。

步骤 5: 添加额外的流程步骤

要创建额外的流程步骤,您需要使用迁移来更新数据库中的流程配置。之后,您还需要创建一个新的流程步骤类以及一个新视图,该视图将步骤渲染给用户(如果适用)。您可以使用以下命令自动为您在正确的位置创建这两个文件:

    php artisan generate:flow-step example_flow second_step

这就完成了!祝您玩得愉快!

支持

请通过 Patreon 支持我,以帮助我进一步开发和维护这个包!!

许可证

此包是开源软件,许可协议为 MIT许可证

联系方式

有关包的问题、错误、建议或功能请求,请使用 Github 问题系统并/或提交一个拉取请求。提交问题时,请始终提供您问题的详细说明,您收到的任何响应或反馈,可能相关的日志消息,以及展示问题的源代码示例。如果不提供这些,我可能无法帮助您解决问题。请在提交问题或拉取请求之前查看 贡献指南

对于任何其他问题,请随时使用以下凭证:

Jan Oris(开发者)