/** * * @param \blaze\lang\Reflectable $object * @todo implement a working version(recursive writeObjectOverride!) */ public function writeObjectOverride(\blaze\lang\Reflectable $object) { if (!$object instanceof \blaze\io\Serializable) { throw new \blaze\io\NotSerializableException(); } $class = $object->getClass(); $method = $class->getMethod('writeObject'); if ($method != null) { $className = $class->getName(); $ser = 'O:' . $className->length() . ':"' . $className->toNative() . '":'; $this->current = $object; $method->invoke($object, $this); $this->current = null; } else { $this->out->write(serialize($object)); } }