Poszukuję klasy który będzie mi w stanie wysłać podane zmienne obiektowe jako łańcuch JSON.
edit>
Gupek ze mnie zapomniałem dodać że chodzi mi o dodawanie zmiennych prywatnych do wyniku.
Dodatkowo korzystam z trochę udziwnionej notacji ( podkreślenia przed typami prymitywnymi PHP w celu odróżnienia ich od obiektów )
Już napisałem sobie trochę prostego kodu.
<?php
class Ajax
{
static public function send
($data) {
$out = json_encode($data);
if(defined('JSON_ERROR_NONE') && JSON_ERROR_NONE
!== json_last_error
) {
AjaxError::send('Nie udało się dokonać konwersji JSON', 0);
} else {
}
}
static public function sendObject
($data) {
Ajax::send(Ajax::preparate($data));
}
static public function preparate
($data) {
$ref = new ReflectionObject($data);
foreach($ref->getProperties() as $prop)
{
$prop = $prop->getName();
if($prop{0} == '_')
{
}
if($ref->hasMethod($method))
{
$output = $data->$method();
$value[$prop] = is_object($output) ? Ajax
::preparate($output) : $output; } else
{
$value[$prop] = null;
}
}
return $value;
}
}
class AjaxError
{
private $_code;
private $_message;
public function __construct($message, $code)
{
$this->_code = $code;
$this->_message = $message;
}
public function getCode()
{
return $this->_code;
}
public function getMessage()
{
return $this->_message;
}
static public function send
($message, $code) {
Ajax::sendObject(new AjaxError($message, $code));
}
}
?>
Teraz tylko scalić z obsługą wyjątków i gitara gra.
Ten post edytował orglee 12.04.2009, 15:52:13