yaml ( $yaml, $member, $default_key )

Takes a YAML object, as a string, to convert to query string keys.

Access

public static

Parameters

Parameter

Type

Required

Description

$yaml

string

Required

A YAML object.

$member

string

Optional

The name of the “member” property that AWS uses for lists in certain services. Defaults to an empty string.

$default_key

string

Optional

The default key to use when the value for $data is a string. Defaults to an empty string.

Returns

Type

Description

array

The option group parameters to merge into another method’s $opt parameter.

Examples

Convert a short-form YAML object into a parameter list.

// Test data
$yaml = '
IpPermissions:
  - { IpProtocol: tcp, FromPort: 3023, ToPort: 3024, Groups: [{ UserId: user1, GroupName: group1 }, { UserId: user2, GroupName: group2 }], IpRanges: [{ CidrIp: 192.168.0.1 }, { CidrIp: 192.168.0.2 }] }
  - { IpProtocol: tcp, FromPort: 3023, ToPort: 3024, Groups: [{ UserId: user1, GroupName: group1 }, { UserId: user2, GroupName: group2 }], IpRanges: [{ CidrIp: 192.168.0.1 }, { CidrIp: 192.168.0.2 }] }
';

$data = CFComplexType::yaml($yaml);

// Success?
var_dump($data);
Result:
array(18) {
  ["IpPermissions.1.IpProtocol"]=>
  string(3) "tcp"
  ["IpPermissions.1.FromPort"]=>
  int(3023)
  ["IpPermissions.1.ToPort"]=>
  int(3024)
  ["IpPermissions.1.Groups.1.UserId"]=>
  string(5) "user1"
  ["IpPermissions.1.Groups.1.GroupName"]=>
  string(6) "group1"
  ["IpPermissions.1.Groups.2.UserId"]=>
  string(5) "user2"
  ["IpPermissions.1.Groups.2.GroupName"]=>
  string(6) "group2"
  ["IpPermissions.1.IpRanges.1.CidrIp"]=>
  string(11) "192.168.0.1"
  ["IpPermissions.1.IpRanges.2.CidrIp"]=>
  string(11) "192.168.0.2"
  ["IpPermissions.2.IpProtocol"]=>
  string(3) "tcp"
  ["IpPermissions.2.FromPort"]=>
  int(3023)
  ["IpPermissions.2.ToPort"]=>
  int(3024)
  ["IpPermissions.2.Groups.1.UserId"]=>
  string(5) "user1"
  ["IpPermissions.2.Groups.1.GroupName"]=>
  string(6) "group1"
  ["IpPermissions.2.Groups.2.UserId"]=>
  string(5) "user2"
  ["IpPermissions.2.Groups.2.GroupName"]=>
  string(6) "group2"
  ["IpPermissions.2.IpRanges.1.CidrIp"]=>
  string(11) "192.168.0.1"
  ["IpPermissions.2.IpRanges.2.CidrIp"]=>
  string(11) "192.168.0.2"
}

Convert a long-form YAML object into a parameter list.

// Test data
$yaml = '
IpPermissions:
  0:
    IpProtocol: tcp
    FromPort: 3023
    ToPort: 3024
    Groups:
      0:
        UserId: user1
        GroupName: group1
      1:
        UserId: user2
        GroupName: group2
    IpRanges:
      0:
        CidrIp: 192.168.0.1
      1:
        CidrIp: 192.168.0.2
  1:
    IpProtocol: tcp
    FromPort: 3023
    ToPort: 3024
    Groups:
      - { UserId: user1, GroupName: group1 }
      - { UserId: user2, GroupName: group2 }
    IpRanges:
      - { CidrIp: 192.168.0.1 }
      - { CidrIp: 192.168.0.2 }
';

$data = CFComplexType::yaml($yaml);

// Success?
var_dump($data);
Result:
array(18) {
  ["IpPermissions.1.IpProtocol"]=>
  string(3) "tcp"
  ["IpPermissions.1.FromPort"]=>
  int(3023)
  ["IpPermissions.1.ToPort"]=>
  int(3024)
  ["IpPermissions.1.Groups.1.UserId"]=>
  string(5) "user1"
  ["IpPermissions.1.Groups.1.GroupName"]=>
  string(6) "group1"
  ["IpPermissions.1.Groups.2.UserId"]=>
  string(5) "user2"
  ["IpPermissions.1.Groups.2.GroupName"]=>
  string(6) "group2"
  ["IpPermissions.1.IpRanges.1.CidrIp"]=>
  string(11) "192.168.0.1"
  ["IpPermissions.1.IpRanges.2.CidrIp"]=>
  string(11) "192.168.0.2"
  ["IpPermissions.2.IpProtocol"]=>
  string(3) "tcp"
  ["IpPermissions.2.FromPort"]=>
  int(3023)
  ["IpPermissions.2.ToPort"]=>
  int(3024)
  ["IpPermissions.2.Groups.1.UserId"]=>
  string(5) "user1"
  ["IpPermissions.2.Groups.1.GroupName"]=>
  string(6) "group1"
  ["IpPermissions.2.Groups.2.UserId"]=>
  string(5) "user2"
  ["IpPermissions.2.Groups.2.GroupName"]=>
  string(6) "group2"
  ["IpPermissions.2.IpRanges.1.CidrIp"]=>
  string(11) "192.168.0.1"
  ["IpPermissions.2.IpRanges.2.CidrIp"]=>
  string(11) "192.168.0.2"
}

Source

Method defined in utilities/complextype.class.php | Toggle source view (4 lines) | View on GitHub

public static function yaml($yaml, $member = '', $default_key = '')
{
    return self::option_group(sfYaml::load($yaml), $member, $default_key);
}

Copyright © 2010–2013 Amazon Web Services, LLC


Feedback