action |= $action; $tic = new FTNTic; switch ($action) { case self::I_SEND: $this->file = $tic->generate($ao,$fo); $this->file_type = self::IS_TIC; $this->file_name = sprintf('%s.tic',sprintf('%08x',$fo->id)); $this->file_size = strlen($this->file); $this->file_mtime = $fo->created_at->timestamp; break; default: throw new \Exception('Unknown action: '.$action); } } public function read(int $start,int $length): string { return substr($this->file,$start,$length); } }