public function write(&$object, IProtocolFormatter $writer) { $referenceCache = $writer->getReferenceCache(); $refId = $referenceCache->getId($object); if (is_string($object)) { $writer->writeStringReference($refId); } else { if (is_array($object)) { $writer->writeArrayReference($refId); } else { $writer->writeObjectReference($refId); } } }