source = $source; } /** * Encode current source * * @return string */ public function encode(): string { return implode('', [ ApplicationExtension::MARKER, ApplicationExtension::LABEL, pack('C', $this->source->getBlockSize()), $this->source->getApplication(), implode('', array_map(function ($block) { return $block->encode(); }, $this->source->getBlocks())), ApplicationExtension::TERMINATOR, ]); } }