8. Extensions - adwins/Arrayer GitHub Wiki
8. Extensions.
You can add some functions to Arrayer based on your needs.
How to create an extension for Arrayer on an example.
/**
* For example, let's write an extension to render Arrayer object as XML
*/
class Arrayer_XML extends Arrayer {
public function as_xml($tag = 'data', $ident = 0){
/**
* Identation string, two spaces are one ident position
*/
$pad = str_repeat(' ', $ident * 2);
/**
* If there are an array of Arrayer objects, pass them thru
*/
if ($this->_vars){
/**
* Open tag
*/
$result = $pad . '<' . $tag . '>' . PHP_EOL;
foreach ($this->_vars as $key => $value){
/**
* Collect values
*/
$result .= $value->as_xml($key, $ident + 1) . PHP_EOL;
}
/**
* Close tag
*/
$result .= $pad . '</' . $tag . '>';
/**
* Return XML without header
*/
return $result;
} else {
/**
* Return single string variable
*/
return $pad . '<' . $tag . '>' . $this->_var . '</' . $tag . '>';
}
}
}
/**
* Now you can use extended class like original plus some more functionality
*/
$post = new Arrayer_XML;
$post->clean();
file_put_contents('test.xml', '<?xml version="1" encoding="utf-8" ?>' . $post->as_xml());