lexal/laravel-stepped-form-submitter

Stepped Form submitter for Laravel & Lumen.

Maintainers

Package info

github.com/lexalium/laravel-stepped-form-submitter

pkg:composer/lexal/laravel-stepped-form-submitter

Statistics

Installs: 378

Dependents: 0

Suggesters: 0

Stars: 1

Open Issues: 0

v4.0.0 2026-03-31 21:24 UTC

This package is auto-updated.

Last update: 2026-03-31 21:30:41 UTC


README

PHPUnit, PHPCS, PHPStan Tests

The package is based on the Form Submitter and built for the Laravel framework.

Table of Contents

  1. Requirements
  2. Installation
  3. Configuration
  4. Usage
  5. License

Requirements

PHP: >=8.2

Laravel: ^11.0 || ^12.0

Installation

Via Composer

composer require lexal/laravel-stepped-form-submitter

Configuration

Publish the config

Run the following command to publish the package config file:

php artisan vendor:publish --provider="Lexal\LaravelSteppedFormSubmitter\ServiceProvider\ServiceProvider"

Available config options

The configuration file config/form-submitter.php has the following options:

  1. transaction_class - place a class name, instance or service alias which the FormSubmitter will use to handle transactions. Place null or remove config to disable transactions.

    'transaction_class' => DatabaseTransaction::class,
  2. submitters - specify at least one form submitter that the stepped form will use to submit entity on FormFinished event. Must implement FormSubmitterInterface.

    'submitters' => [
        // list of form submitters
    ],
(back to top)

Usage

  1. Publish configuration file.

  2. Add form transaction implementation, if necessary.

    use Lexal\FormSubmitter\Transaction\TransactionInterface;
    
    final class DatabaseTransaction implements TransactionInterface
    {
         public function start(): void
         {
             // start transaction
         }
    
         public function commit(): void
         {
             // commit transaction
         }
    
         public function rollback(): void
         {
             // rollback transaction
         }
    }
  3. Create custom form submitters.

    use Lexal\FormSubmitter\FormSubmitterInterface;
    
    final class CustomerFormSubmitter implements FormSubmitterInterface
    {
        public function supportsSubmitting(mixed $entity): bool
        {
            return $entity instanceof Customer;
        }
        
        public function submit(mixed $entity): mixed
        {
            // save entity to the database
            
            return $entity;
        }
    }
  4. Update configuration file. Add form submitters and transaction class (if necessary).

    return [
        'transaction_class' => DatabaseTransaction::class,
        'submitters' => [
            CustomerFormSubmitter::class,
        ],
    ];
  5. Form submitter will call your custom form submitter automatically if it supports submitting of stepped-form entity.

(back to top)

License

Laravel Stepped Form Submitter is licensed under the MIT License. See LICENSE for the full license text.