enm/transformer-bundle

此包已被弃用,不再维护。未建议替代包。

此包可用于将数组、对象或JSON字符串转换为所需的数组、对象或JSON字符串,并验证值和模式与配置数组。

安装: 409

依赖: 0

建议者: 0

安全: 0

星标: 7

关注者: 9

分支: 1

开放问题: 0

类型:symfony-bundle

0.4.0 2016-01-26 09:44 UTC

This package is auto-updated.

Last update: 2022-02-01 12:40:10 UTC


README

此包不再维护!

Enm / TransformerBundle BuildStatus

SensioLabsInsight

此包可用作什么?

此包用于将 Enm/Transformer 库集成到 Symfony2 环境。

此库可用于验证数组、对象或JSON字符串,并返回包含验证值的数组、对象或JSON字符串。

这对于REST-API很有用。您可以输入JSON字符串并输出,而转换器可以确保所有值都是有效的。

基本用法

转换器可通过symfony服务访问。

enm.transformer

对于自动完成,可以使用 "TransformerInterface" 进行类型化

__construct(\Enm\TransformerBundle\Interfaces\TransformerInterface $transformer){
  $this->transformer = $transformer;
}

该接口将提供不同的方法给您

  • transform($returnClass, $config, $values, $local_config = null, $result_type = 'object') : array | object | string

  • reverseTransform($object, $config, $local_config = null, $result_type = 'object') : array | \stdClass | string

  • getEmptyObjectStructureFromConfig($config, $result_type = 'object') : array | object | string

  • convert($value, $to) : array | object | string

方法:transform()

此方法将验证给定值并从正确的值构建结果(包括属性重命名、值归一化和值转换,如果配置了的话)。

参数

  • returnClass : 返回对象的object或类名(带命名空间)

  • config : 验证和构建输出的配置数组

  • values : 要验证的对象或数组或JSON字符串

  • local_config : 来自全局配置或配置数组或配置对象或配置JSON的配置名称或配置

  • result_type : 此方法应返回的类型字符串("array" 或 "object" 或 "json")

结果

  • 对象或数组或JSON

方法:reverseTransform()

此方法返回对象的原始结构(转换之前的原始命名)中的值,但以所选格式(对象、数组或JSON)

参数

  • 对象 : 对象、数组或JSON

  • config : 配置数组

  • local_config : 来自全局配置或配置数组或配置对象或配置JSON的配置名称或配置

  • result_type : 此方法应返回的类型字符串("array" 或 "object" 或 "json")

结果

  • 对象或数组或JSON

方法:getEmptyObjectStructureFromConfig()

此方法将根据您的配置数组构建所需对象的架构。

参数

  • config : 配置数组

  • result_type : 此方法应返回的类型字符串("array" 或 "object" 或 "json")

结果

  • 对象或数组或JSON

方法:convert()

此值将对象、数组或JSON字符串转换为标准对象、数组或JSON字符串。

参数

  • value : 数组或对象或JSON

  • to : 返回值的类型字符串("array" 或 "object" 或 "json")

结果

  • 对象或数组或JSON

验证

对于验证,您可以使用配置数组,该数组必须提供给transform或reverseTransform方法。

该配置数组包含所有类型验证的一些参数和一些特殊类型验证参数。

一些参数是必需的,一些是可选的。

基本配置如下所示

$config = array(
  'key' => array(
    'type' => '', // required
    'renameTo' => '', // optional
    'children' => array(), // only in use with types "object", "collection" and (if you want it) "individual"
    'options' => array() // optional
  )
)

type

这是唯一始终必需的选项。

使用此选项,您必须向转换器提供验证数据的类型。

可能值

  • 字符串
  • 整数
  • 浮点数
  • 布尔值
  • 数组
  • 对象
  • 集合 // 相等对象的数组
  • 日期
  • 个体 // 可以是任何类型。默认不执行验证,但您可以添加自己的验证(见后文)

renameTo

此选项是可选的,但如果使用,则需要提供字符串。

此选项可用于将键重命名为不同的属性名。

children

此选项仅在类型为对象、集合或个体时才可能。如果类型是对象或集合,则此选项是必需的。

此选项需要子元素(对象和集合验证)的完整配置数组。

默认选项

适用于所有类型,始终可选

$config['key']['options'] => array(
  'required' => true,
  'requiredIfAvailable' => array(
    'and' => array(), 
    'or' => array()
  ),
  'requiredIfNotAvailable' => array(
    'and' => array(),
    'or' => array()
  ),
  'forbiddenIfAvailable' => array(),
  'forbiddenIfNotAvailable' => array()
)

required

此选项需要true或false。默认值为false。

如果设置为true,则此选项要求转换器验证当前值不是NULL。

requiredIfAvailable

此选项必须是数组,如果设置,则需要子配置。

通常,此选项告诉转换器设置当前值必需。

子配置

array(
  'and' => array(),
  'or' => array()
)
  • and: 这里提供的所有键都必须可用以设置当前值必需
  • or: 这里提供的键中必须有一个可用以设置当前值必需

requiredIfNotAvailable

此选项必须是数组,如果设置,则需要子配置。

通常,此选项告诉转换器设置当前值必需。

子配置

array(
  'and' => array(),
  'or' => array()
)
  • and: 这里提供的所有键都必须不可用以设置当前值必需
  • or: 这里提供的键中必须有一个不可用以设置当前值必需

forbiddenIfAvailable

此选项需要配置键名数组。

它要求转换器验证如果给定的键之一有值,则当前键将没有值或值等于NULL。

forbiddenIfNotAvailable

此选项需要配置键名数组。

它要求转换器验证如果给定的键之一没有值,则当前键将没有值或值等于NULL。

字符串验证

基本配置

$config = array(
  'key' => array(
    'type' => 'string',
  )
)

可能选项,全部为可选

$config['key']['options'] = array(
  'stringValidation' => '' // email|url|ip
)