lexal/laravel-stepped-form-submitter

Laravel & Lumen 的分步表单提交器。

v3.0.0 2023-12-28 21:03 UTC

This package is auto-updated.

Last update: 2024-09-28 23:06:14 UTC


README

PHPUnit, PHPCS, PHPStan Tests

该软件包基于 Form Submitter 并为 Laravel & Lumen 框架构建。

目录

  1. 要求
  2. 安装
  3. 配置
  4. 用法
  5. 许可证

要求

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 具有以下选项

  1. transaction_class - 放置 FormSubmitter 将用于处理事务的类名、实例或服务别名。放置 null 或移除配置以禁用事务。

    'transaction_class' => DatabaseTransaction::class,
  2. submitters - 指定至少一个表单提交器,该提交器将在表单完成事件上用于提交实体。必须实现 FormSubmitterInterface

    'submitters' => [
        // list of form submitters
    ],
(返回顶部)

用法

  1. 发布配置文件.

  2. 如果需要,添加表单事务实现。

    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. 创建自定义表单提交器。

    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. 更新配置文件。添加表单提交器和事务类(如果需要)。

    return [
        'transaction_class' => DatabaseTransaction::class,
        'submitters' => [
            CustomerFormSubmitter::class,
        ],
    ];
  5. 如果自定义表单提交器支持提交分步表单实体,表单提交器将自动调用您的自定义表单提交器。

(返回顶部)

许可证

Laravel & Lumen 分步表单提交器采用 MIT 许可证。有关完整的许可证文本,请参阅 LICENSE