107 lines
2.3 KiB
PHP
107 lines
2.3 KiB
PHP
<?php
|
|
/**
|
|
* @package Joomla.Platform
|
|
* @subpackage Registry
|
|
*
|
|
* @copyright Copyright (C) 2005 - 2013 Open Source Matters, Inc. All rights reserved.
|
|
* @license GNU General Public License version 2 or later; see LICENSE
|
|
*/
|
|
|
|
defined('JPATH_PLATFORM') or die;
|
|
|
|
/**
|
|
* PHP class format handler for JRegistry
|
|
*
|
|
* @package Joomla.Platform
|
|
* @subpackage Registry
|
|
* @since 11.1
|
|
*/
|
|
class JRegistryFormatPHP extends JRegistryFormat
|
|
{
|
|
/**
|
|
* Converts an object into a php class string.
|
|
* - NOTE: Only one depth level is supported.
|
|
*
|
|
* @param object $object Data Source Object
|
|
* @param array $params Parameters used by the formatter
|
|
*
|
|
* @return string Config class formatted string
|
|
*
|
|
* @since 11.1
|
|
*/
|
|
public function objectToString($object, $params = array())
|
|
{
|
|
// Build the object variables string
|
|
$vars = '';
|
|
foreach (get_object_vars($object) as $k => $v)
|
|
{
|
|
if (is_scalar($v))
|
|
{
|
|
$vars .= "\tpublic $" . $k . " = '" . addcslashes($v, '\\\'') . "';\n";
|
|
}
|
|
elseif (is_array($v) || is_object($v))
|
|
{
|
|
$vars .= "\tpublic $" . $k . " = " . $this->getArrayString((array) $v) . ";\n";
|
|
}
|
|
}
|
|
|
|
$str = "<?php\nclass " . $params['class'] . " {\n";
|
|
$str .= $vars;
|
|
$str .= "}";
|
|
|
|
// Use the closing tag if it not set to false in parameters.
|
|
if (!isset($params['closingtag']) || $params['closingtag'] !== false)
|
|
{
|
|
$str .= "\n?>";
|
|
}
|
|
|
|
return $str;
|
|
}
|
|
|
|
/**
|
|
* Parse a PHP class formatted string and convert it into an object.
|
|
*
|
|
* @param string $data PHP Class formatted string to convert.
|
|
* @param array $options Options used by the formatter.
|
|
*
|
|
* @return object Data object.
|
|
*
|
|
* @since 11.1
|
|
*/
|
|
public function stringToObject($data, array $options = array())
|
|
{
|
|
return true;
|
|
}
|
|
|
|
/**
|
|
* Method to get an array as an exported string.
|
|
*
|
|
* @param array $a The array to get as a string.
|
|
*
|
|
* @return array
|
|
*
|
|
* @since 11.1
|
|
*/
|
|
protected function getArrayString($a)
|
|
{
|
|
$s = 'array(';
|
|
$i = 0;
|
|
foreach ($a as $k => $v)
|
|
{
|
|
$s .= ($i) ? ', ' : '';
|
|
$s .= '"' . $k . '" => ';
|
|
if (is_array($v) || is_object($v))
|
|
{
|
|
$s .= $this->getArrayString((array) $v);
|
|
}
|
|
else
|
|
{
|
|
$s .= '"' . addslashes($v) . '"';
|
|
}
|
|
$i++;
|
|
}
|
|
$s .= ')';
|
|
return $s;
|
|
}
|
|
}
|