PHPackages                             lekoala/silverstripe-multi-step-form - 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. lekoala/silverstripe-multi-step-form

ActiveSilverstripe-vendormodule[Utility &amp; Helpers](/categories/utility)

lekoala/silverstripe-multi-step-form
====================================

Multi step forms for SilverStripe

08[1 issues](https://github.com/lekoala/silverstripe-multi-step-form/issues)PHP

Since Apr 3Pushed 2y ago2 watchersCompare

[ Source](https://github.com/lekoala/silverstripe-multi-step-form)[ Packagist](https://packagist.org/packages/lekoala/silverstripe-multi-step-form)[ RSS](/packages/lekoala-silverstripe-multi-step-form/feed)WikiDiscussions master Synced yesterday

READMEChangelogDependenciesVersions (1)Used By (0)

SilverStripe Multi Step Forml module
====================================

[](#silverstripe-multi-step-forml-module)

[![Build Status](https://camo.githubusercontent.com/c87b22b698a24c2f17aed1a80d75417c596122d51c8553e826a1041fc25e673a/68747470733a2f2f7472617669732d63692e636f6d2f6c656b6f616c612f73696c7665727374726970652d6d756c74692d737465702d666f726d2e7376673f6272616e63683d6d6173746572)](https://travis-ci.com/lekoala/silverstripe-multi-step-form/)[![scrutinizer](https://camo.githubusercontent.com/56c44fde84e6ca5aa833456a55b4e9985c13361d19a9203ef0d9b2a03615a435/68747470733a2f2f7363727574696e697a65722d63692e636f6d2f672f6c656b6f616c612f73696c7665727374726970652d6d756c74692d737465702d666f726d2f6261646765732f7175616c6974792d73636f72652e706e673f623d6d6173746572)](https://scrutinizer-ci.com/g/lekoala/silverstripe-multi-step-form/)[![Code coverage](https://camo.githubusercontent.com/f6bea10e192cbbfd3e2fd138fd7c9da52ba67468dfc20b85c9f1f47a2513284e/68747470733a2f2f636f6465636f762e696f2f67682f6c656b6f616c612f73696c7665727374726970652d6d756c74692d737465702d666f726d2f6272616e63682f6d61737465722f67726170682f62616467652e737667)](https://codecov.io/gh/lekoala/silverstripe-multi-step-form)

Intro
-----

[](#intro)

A simple alternative to [multiform](https://github.com/silverstripe/silverstripe-multiform)

This module does not require storage in the back end and provide a somewhat easier DX.

How it works
------------

[](#how-it-works)

Each step of your form should be named the same.

- MyFormStep1
- MyFormStep2
- ...

They should all extends the base `MultiStepForm` class and implements the following abstract methods:

- buildFields : returns a field list
- getStepTitle : get the step title

```
class MyFormStep1 extends MultiStepForm
{
    public static function getStepTitle()
    {
        return 'My Step';
    }

    public function buildFields()
    {
        $fields = new FieldList();
        return $fields;
    }
}
```

In your controller, you declare a form like this:

```
private static $allowed_actions = array(
    'MyForm'
);

public function MyForm()
{
    $class = MyFormStep1::classForCurrentStep($this);
    return new $class($this);
}
```

Template helpers
----------------

[](#template-helpers)

You can display the steps using

```
$MyForm.DisplaySteps

```

This relies on some default styles that are added by default. You can disable styles and edit custom classes with:

```
LeKoala\MultiStepForm\MultiStepForm:
    include_css: true
    class_active: "current bg-primary text-white"
    class_inactive: "link"
    class_completed: "msf-completed bg-primary text-white"
    class_not_completed: "msf-not-completed bg-light text-muted"
```

TODO
----

[](#todo)

- Doc
- Tests

Compatibility
-------------

[](#compatibility)

Tested with 4.6 but should work on any ^4.4 projects

Maintainer
----------

[](#maintainer)

LeKoala -

###  Health Score

13

—

LowBetter than 1% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity4

Limited adoption so far

Community8

Small or concentrated contributor base

Maturity19

Early-stage or recently created project

 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.

### Community

Maintainers

![](https://avatars.githubusercontent.com/u/250762?v=4)[Thomas Portelange](/maintainers/lekoala)[@lekoala](https://github.com/lekoala)

---

Top Contributors

[![lekoala](https://avatars.githubusercontent.com/u/250762?v=4)](https://github.com/lekoala "lekoala (16 commits)")

---

Tags

formphpsilverstripestep

### Embed Badge

![Health badge](/badges/lekoala-silverstripe-multi-step-form/health.svg)

```
[![Health](https://phpackages.com/badges/lekoala-silverstripe-multi-step-form/health.svg)](https://phpackages.com/packages/lekoala-silverstripe-multi-step-form)
```

###  Alternatives

[sebastiaanluca/php-pipe-operator

Method chaining (or fluent expressions) for any value using any method.

287469.5k2](/packages/sebastiaanluca-php-pipe-operator)

PHPackages © 2026

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