The package is based on the Form Submitter and built for the Laravel & Lumen framework.
Table of Contents
PHP: >=8.1
Laravel: ^9.0 || ^10.0
Via Composer
composer require lexal/laravel-stepped-form-submitter
Add the following snippet to the bootstrap/app.php
file under the providers section as follows:
$app->register(Lexal\LaravelSteppedFormSubmitter\ServiceProvider\ServiceProvider::class);
Run the following command to publish the package config file:
php artisan vendor:publish --provider="Lexal\LaravelSteppedFormSubmitter\ServiceProvider\ServiceProvider"
The configuration file config/form-submitter.php
has the following options:
-
transaction_class
- place a class name, instance or service alias which the FormSubmitter will use to handle transactions. Placenull
or remove config to disable transactions.'transaction_class' => DatabaseTransaction::class,
-
submitters
- specify at least one form submitter that the stepped form will use to submit entity on FormFinished event. Must implementFormSubmitterInterface
.'submitters' => [ // list of form submitters ],
-
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 } }
-
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; } }
-
Update configuration file. Add form submitters and transaction class (if necessary).
return [ 'transaction_class' => DatabaseTransaction::class, 'submitters' => [ CustomerFormSubmitter::class, ], ];
-
Form submitter will call your custom form submitter automatically if it supports submitting of stepped-form entity.
Laravel & Lumen Stepped Form Submitter is licensed under the MIT License. See LICENSE for the full license text.