Magento 2 Documentation  2.3
Documentation for Magento 2 CMS v2.3 (December 2018)
Public Member Functions | Static Public Member Functions | Static Protected Member Functions | Protected Attributes
Zend_Config_Writer_Yaml Class Reference
Inheritance diagram for Zend_Config_Writer_Yaml:
Zend_Config_Writer_FileAbstract Zend_Config_Writer

Public Member Functions

 getYamlEncoder ()
 
 setYamlEncoder ($yamlEncoder)
 
 render ()
 
- Public Member Functions inherited from Zend_Config_Writer_FileAbstract
 setFilename ($filename)
 
 setExclusiveLock ($exclusiveLock)
 
 write ($filename=null, Zend_Config $config=null, $exclusiveLock=null)
 
 render ()
 
- Public Member Functions inherited from Zend_Config_Writer
 __construct (array $options=null)
 
 setConfig (Zend_Config $config)
 
 setOptions (array $options)
 
 write ()
 

Static Public Member Functions

static encode ($data)
 

Static Protected Member Functions

static _encodeYaml ($indent, $data)
 

Protected Attributes

 $_yamlEncoder = array('Zend_Config_Writer_Yaml', 'encode')
 
- Protected Attributes inherited from Zend_Config_Writer_FileAbstract
 $_filename = null
 
 $_exclusiveLock = false
 
- Protected Attributes inherited from Zend_Config_Writer
 $_skipOptions
 
 $_config = null
 

Detailed Description

Definition at line 38 of file Yaml.php.

Member Function Documentation

◆ _encodeYaml()

static _encodeYaml (   $indent,
  $data 
)
staticprotected

Service function for encoding YAML

Parameters
int$indentCurrent indent level
array$dataData to encode
Returns
string

Definition at line 128 of file Yaml.php.

129  {
130  reset($data);
131  $result = "";
132  $numeric = is_numeric(key($data));
133 
134  foreach($data as $key => $value) {
135  if(is_array($value)) {
136  $encoded = "\n".self::_encodeYaml($indent+1, $value);
137  } else {
138  $encoded = (string)$value."\n";
139  }
140  $result .= str_repeat(" ", $indent).($numeric?"- ":"$key: ").$encoded;
141  }
142  return $result;
143  }
$value
Definition: gender.phtml:16

◆ encode()

static encode (   $data)
static

Very dumb YAML encoder

Until we have Zend_Yaml...

Parameters
array$dataYAML data
Returns
string

Definition at line 116 of file Yaml.php.

117  {
118  return self::_encodeYaml(0, $data);
119  }
static _encodeYaml($indent, $data)
Definition: Yaml.php:128

◆ getYamlEncoder()

getYamlEncoder ( )

Get callback for decoding YAML

Returns
callable

Definition at line 52 of file Yaml.php.

53  {
54  return $this->_yamlEncoder;
55  }

◆ render()

render ( )

Render a Zend_Config into a YAML config string.

Since
1.10
Returns
string

Definition at line 80 of file Yaml.php.

81  {
82  $data = $this->_config->toArray();
83  $sectionName = $this->_config->getSectionName();
84  $extends = $this->_config->getExtends();
85 
86  if (is_string($sectionName)) {
87  $data = array($sectionName => $data);
88  }
89 
90  foreach ($extends as $section => $parentSection) {
91  $data[$section][Zend_Config_Yaml::EXTENDS_NAME] = $parentSection;
92  }
93 
94  // Ensure that each "extends" section actually exists
95  foreach ($data as $section => $sectionData) {
96  if (is_array($sectionData) && isset($sectionData[Zend_Config_Yaml::EXTENDS_NAME])) {
97  $sectionExtends = $sectionData[Zend_Config_Yaml::EXTENDS_NAME];
98  if (!isset($data[$sectionExtends])) {
99  // Remove "extends" declaration if section does not exist
100  unset($data[$section][Zend_Config_Yaml::EXTENDS_NAME]);
101  }
102  }
103  }
104 
105  return call_user_func($this->getYamlEncoder(), $data);
106  }
const EXTENDS_NAME
Definition: Yaml.php:40

◆ setYamlEncoder()

setYamlEncoder (   $yamlEncoder)

Set callback for decoding YAML

Parameters
callable$yamlEncoderthe decoder to set
Returns
Zend_Config_Yaml

Definition at line 63 of file Yaml.php.

64  {
65  if (!is_callable($yamlEncoder)) {
66  #require_once 'Zend/Config/Exception.php';
67  throw new Zend_Config_Exception('Invalid parameter to setYamlEncoder - must be callable');
68  }
69 
70  $this->_yamlEncoder = $yamlEncoder;
71  return $this;
72  }

Field Documentation

◆ $_yamlEncoder

$_yamlEncoder = array('Zend_Config_Writer_Yaml', 'encode')
protected

Definition at line 45 of file Yaml.php.


The documentation for this class was generated from the following file: