PHPackages                             ixudra/wizard - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Utility &amp; Helpers](/categories/utility)
4. /
5. ixudra/wizard

ActiveLibrary[Utility &amp; Helpers](/categories/utility)

ixudra/wizard
=============

Custom PHP wizard library for the Laravel 5 framework - developed by Ixudra

2.0.1(7y ago)81103MITPHPPHP &gt;=7.0

Since Nov 18Pushed 7y ago1 watchersCompare

[ Source](https://github.com/ixudra/wizard)[ Packagist](https://packagist.org/packages/ixudra/wizard)[ Docs](http://ixudra.be)[ RSS](/packages/ixudra-wizard/feed)WikiDiscussions master Synced 2mo ago

READMEChangelogDependencies (5)Versions (11)Used By (0)

ixudra/wizard
=============

[](#ixudrawizard)

[![Latest Version on Packagist](https://camo.githubusercontent.com/4d078526dcf85acbb480b5cde9c1fd169334961c6162b15e155ade9af563fa0d/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f762f6978756472612f77697a6172642e7376673f7374796c653d666c61742d737175617265)](https://packagist.org/packages/ixudra/wizard)![license](https://camo.githubusercontent.com/5fab5cabad6a4a68ab75a88bc65b463ab230dbcb50cb90c4b5c1104249f89bb4/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f6c6963656e73652f6978756472612f77697a6172642e737667)[![StyleCI](https://camo.githubusercontent.com/f5c4c9bda9ccda1fe61424c28d4aa50db208866304b428e97d199ce6a402bfe0/68747470733a2f2f7374796c6563692e696f2f7265706f732f37343137343037382f736869656c64)](https://styleci.io/repos/74174078)[![Total Downloads](https://camo.githubusercontent.com/9e767e9fd43c6afda832acdf142db7e959a6048263e40cc4c338651a3b6772bd/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f64742f6978756472612f77697a6172642e7376673f7374796c653d666c61742d737175617265)](https://packagist.org/packages/ixudra/wizard)

Custom PHP wizard package for the Laravel 5 framework - developed by [Ixudra](http://ixudra.be).

This package can be used by anyone at any given time, but keep in mind that it is optimized for my personal custom workflow. It may not suit your project perfectly and modifications may be in order.

Installation
------------

[](#installation)

Pull this package in through Composer.

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

Add the service provider to your `config/app.php` file.

```
    'providers'     => array(

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

    ),
```

Run package migrations using artisan:

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

Alternatively, you can also publish the migrations using 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"
```

For creating new flows, you can leverage the functionality that is being made available by the `ixudra/generators` package. This package can be used to generate a wide variety of files such as models and controllers, but also offers specific templates that fit hand in glove into this package.

In order to use this functionality, you also need to include the service provider for the `ixudra/generators` package in your `config/app.php` file:

```
    'providers'     => array(

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

    ),
```

Usage
-----

[](#usage)

The package provides the key building blocks to easily create wizards and flows in your application. The actual flows need to be built in your application and need to follow a specific pattern for them to fit into this mold. In this document I will describe how to create an example flow called `ExampleFlow` which should provide you with enough information on how to create your own.

### Step 1: Adding the flow routes

[](#step-1-adding-the-flow-routes)

Add the flow controller to your routes file with the prefixes and middleware that you require:

```
    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' ));
    });
```

These two routes will support all the functionality that you will need for your flows. The routes will support any number of flows and should thus only be added once (unless in certain cases where a different route configuration is needd per flow, e.g. middleware or route prefixes).

### Step 2: Writing the flow migrations

[](#step-2-writing-the-flow-migrations)

Create a new flow using Laravel migrations. For your convenience, you can copy this time from `Ixudra/Wizard/database/CreateExampleFlows.php` to get a head start.

### Step 3: Creating the flow

[](#step-3-creating-the-flow)

To make a new flow, simply use the following command:

```
    php artisan generate:flow example_flow first_step

```

This will automatically generate all required flow files in the correct folders and fill in the correct variables based on the the parameters passed to the command. The first parameter is the name of the flow, the second parameter is the name of the first flow step that is to be created for this flow.

### Step 4: Accessing the flow

[](#step-4-accessing-the-flow)

Once this is done, you are good to go and you can access your flow via the url , which will automatically redirect to the first flow step if no specific step is specified. You can add as many flow steps as you want. To add new flow steps, simply add the necessary FlowStepHandler class and step.blade.php file and update the flow information through a migration.

Switching between flow steps is easy. This can be done through GET requests (if no processing is needed) or through POST requests (if processing is needed).

Some modifications may be in order depending on your setup, but this should provide you with a decent scaffold to speed up your development process.

### Step 5: Adding additional flow steps

[](#step-5-adding-additional-flow-steps)

To create additional flow steps, you will need to update the flow config in the database using a migration. After that, you need to create a new flow step class as well as a new view that will render the step to the user (if applicable). You can use the following command to automatically create both files for you in the correct locations:

```
    php artisan generate:flow-step example_flow second_step

```

That's all there is to it! Have fun!

Support
-------

[](#support)

Help me further develop and maintain this package by supporting me via [Patreon](https://www.patreon.com/ixudra)!!

License
-------

[](#license)

This package is open-sourced software licensed under the [MIT license](http://opensource.org/licenses/MIT)

Contact
-------

[](#contact)

For package questions, bug, suggestions and/or feature requests, please use the Github issue system and/or submit a pull request. When submitting an issue, always provide a detailed explanation of your problem, any response or feedback your get, log messages that might be relevant as well as a source code example that demonstrates the problem. If not, I will most likely not be able to help you with your problem. Please review the [contribution guidelines](https://github.com/ixudra/wizard/blob/master/CONTRIBUTING.md) before submitting your issue or pull request.

For any other questions, feel free to use the credentials listed below:

Jan Oris (developer)

- Email:
- Telephone: +32 496 94 20 57

###  Health Score

31

—

LowBetter than 68% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity17

Limited adoption so far

Community9

Small or concentrated contributor base

Maturity64

Established project with proven stability

 Bus Factor1

Top contributor holds 100% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~61 days

Recently: every ~136 days

Total

10

Last Release

2912d ago

Major Versions

1.3.0 → 2.0.02017-09-05

PHP version history (2 changes)1.0.0PHP &gt;=5.4.0

2.0.0PHP &gt;=7.0

### Community

Maintainers

![](https://www.gravatar.com/avatar/c441bf73a59ca680bb804e22e746002a07d1a44542e8c417a45317bc79b224d8?d=identicon)[Elimentz](/maintainers/Elimentz)

---

Top Contributors

[![elimentz](https://avatars.githubusercontent.com/u/1410811?v=4)](https://github.com/elimentz "elimentz (14 commits)")

---

Tags

laravelflowwizardIxudra

### Embed Badge

![Health badge](/badges/ixudra-wizard/health.svg)

```
[![Health](https://phpackages.com/badges/ixudra-wizard/health.svg)](https://phpackages.com/packages/ixudra-wizard)
```

###  Alternatives

[barryvdh/laravel-ide-helper

Laravel IDE Helper, generates correct PHPDocs for all Facade classes, to improve auto-completion.

14.9k123.0M687](/packages/barryvdh-laravel-ide-helper)[interaction-design-foundation/laravel-geoip

Support for multiple Geographical Location services.

17221.0k3](/packages/interaction-design-foundation-laravel-geoip)[caouecs/sirtrevorjs

Sir Trevor JS in Laravel project

5421.6k](/packages/caouecs-sirtrevorjs)[nedwors/navigator

A Laravel package to ease defining navigation menus

433.1k](/packages/nedwors-navigator)[rinvex/laravel-menus

Rinvex Menus is a simple menu builder package for Laravel, that supports hierarchical structure, ordering, and styling with full flexibility using presenters for easy styling and custom structure of menu rendering.

294.0k20](/packages/rinvex-laravel-menus)[efficiently/jquery-laravel

This package provides jQuery and the jQuery-ujs driver for your Laravel &gt;= 6 application.

1311.0k1](/packages/efficiently-jquery-laravel)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
