8. Extensions - adwins/Arrayer GitHub Wiki

8. Extensions.

Introduction

You can add some functions to Arrayer based on your needs.

How to create an extension for Arrayer on an example.

Details

/**
 * 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());

⚠️ **GitHub.com Fallback** ⚠️