assert(!$instanceClass->isArray()); foreach ($customSerializer->getMethods() as $method) { if ($method->getName() === 'serialize') { $method->invoke($this, $instance); return; } } throw new NoSuchMethodException('serialize'); } private function writeHeader(SSSW_LengthConstrainedArray $stream) { $stream->addToken($this->getFlags()); $stream->addToken($this->getVersion()); } private function writePayload(SSSW_LengthConstrainedArray $stream) { for ($i = count($this->tokenList) - 1; $i >= 0; $i--) { $stream->addToken($this->tokenList[$i]); } } private function writeStringTable(SSSW_LengthConstrainedArray $stream) { $tableStream = new SSSW_LengthConstrainedArray(); foreach ($this->getStringTable() as $s) { $tableStream->addToken(self::escapeString($s)); } $stream->addToken((string) $tableStream); } } ServerSerializationStreamWriter::init();