Example #1
0
 public function writeObject($obj)
 {
     $class = get_class($obj);
     $alias = ClassManager::getClassAlias($class);
     if (isset($this->classref[$alias])) {
         $index = $this->classref[$alias];
     } else {
         $reflector = new ReflectionClass($obj);
         $props = $reflector->getProperties(ReflectionProperty::IS_PUBLIC | ReflectionProperty::IS_PROTECTED | ReflectionProperty::IS_PRIVATE);
         $index = $this->writeClass($alias, $props);
     }
     $this->refer->set($obj);
     $props = $this->propsref[$index];
     $this->stream->write(Tags::TagObject . $index . Tags::TagOpenbrace);
     foreach ($props as $prop) {
         $this->serialize($prop->getValue($obj));
     }
     $this->stream->write(Tags::TagClosebrace);
 }