mikesimonson/symfony-form-value-object-mapper

一个库,可以自动实例化由Symfony表单映射的值对象,即使有带参数的构造函数。

dev-master 2017-03-30 07:33 UTC

This package is not auto-updated.

Last update: 2024-09-14 20:20:12 UTC


README

Build Status Code Coverage

动机

使用Symfony表单组件的值对象。Webmozart有一篇优秀的文章解释了如何使用Symfony表单组件和值对象。但有时人们可能会因为现在需要手动在对象和表单之间进行映射而放弃使用值对象。当对象属性数量较多时,这可能看起来很令人畏惧。

这个库旨在通过在大多数情况下提供自动映射来解决90%的问题。请参阅要求部分。

在剩下的10%的情况下,手动映射比尝试制作一个必须进行魔法咒语来猜测用户需求的库更有意义。

安装

composer require mikesimonson/symfony-form-value-object-mapper

用法

在需要任何表单的情况下,您可以使用

$builder->setDataMapper(new FormMapper());

使用此映射器的需求

  • 拥有实体
  • 这些实体上有getter和setter方法
  • 表单元素名称必须与实体中属性名称匹配
  • 构造函数参数名称必须与实体属性名称匹配
  • 如果抛出异常以处理验证失败,则需要扩展InvalidArgumentException
  • 为使用它的表单编写测试。如果您更改值对象中的属性名称,则表单将损坏。(尽管这是默认的symfony表单映射器的情况)

限制

目前此映射器不支持collectionType字段。欢迎提交PR。