LaravelPackages.net
Acme Inc.
Toggle sidebar
lexal/laravel-stepped-form-submitter

Stepped Form submitter for Laravel & Lumen.

456
1
v4.0.0
About lexal/laravel-stepped-form-submitter

lexal/laravel-stepped-form-submitter is a Laravel package for stepped form submitter for laravel & lumen.. It currently has 1 GitHub stars and 456 downloads on Packagist (latest version v4.0.0). Install it with composer require lexal/laravel-stepped-form-submitter. Discover more Laravel packages by lexal or browse all Laravel packages to compare alternatives.

Last updated

Stepped Form Submitter for Laravel

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
    ],
    

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.


License

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

Star History Chart