lexal / laravel-stepped-form-submitter
Laravel & Lumen 的分步表单提交器。
v3.0.0
2023-12-28 21:03 UTC
Requires
- php: >=8.1
- illuminate/contracts: ^9.0 || ^10.0
- illuminate/support: ^9.0 || ^10.0
- lexal/form-submitter: ^2.0
- lexal/stepped-form: ^2.0
Requires (Dev)
- dealerdirect/phpcodesniffer-composer-installer: ^1.0.0
- phpstan/phpstan: ^1.10
- phpunit/phpunit: ^10.5
- roave/security-advisories: dev-latest
- webimpress/coding-standard: ^1.3
Suggests
- illuminate/config: Required to use Laravel config (^9.0 || ^10.0).
- illuminate/events: Required to listen Stepped Form event (^9.0 || ^10.0).
This package is auto-updated.
Last update: 2024-09-28 23:06:14 UTC
README
该软件包基于 Form Submitter 并为 Laravel & Lumen 框架构建。
目录
要求
PHP >=8.1
Laravel ^9.0 || ^10.0
安装
通过 Composer
composer require lexal/laravel-stepped-form-submitter
Lumen 框架的额外更改
将以下片段添加到 bootstrap/app.php
文件的 providers 部分,如下所示
$app->register(Lexal\LaravelSteppedFormSubmitter\ServiceProvider\ServiceProvider::class);(返回顶部)
配置
发布配置
运行以下命令发布软件包配置文件
php artisan vendor:publish --provider="Lexal\LaravelSteppedFormSubmitter\ServiceProvider\ServiceProvider"
可用的配置选项
配置文件 config/form-submitter.php
具有以下选项
-
transaction_class
- 放置 FormSubmitter 将用于处理事务的类名、实例或服务别名。放置null
或移除配置以禁用事务。'transaction_class' => DatabaseTransaction::class,
-
submitters
- 指定至少一个表单提交器,该提交器将在表单完成事件上用于提交实体。必须实现FormSubmitterInterface
。'submitters' => [ // list of form submitters ],
用法
-
如果需要,添加表单事务实现。
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 } }
-
创建自定义表单提交器。
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; } }
-
更新配置文件。添加表单提交器和事务类(如果需要)。
return [ 'transaction_class' => DatabaseTransaction::class, 'submitters' => [ CustomerFormSubmitter::class, ], ];
-
如果自定义表单提交器支持提交分步表单实体,表单提交器将自动调用您的自定义表单提交器。
许可证
Laravel & Lumen 分步表单提交器采用 MIT 许可证。有关完整的许可证文本,请参阅 LICENSE。