oPclZip = new \PclZip($filename); $this->tmpDir = \sys_get_temp_dir(); return $this; } public function close() { return $this; } public function addFromString($localname, $contents) { $pathData = \pathinfo($localname); $hFile = \fopen($this->tmpDir . '/' . $pathData['basename'], 'wb'); \fwrite($hFile, $contents); \fclose($hFile); $res = $this->oPclZip->add($this->tmpDir . '/' . $pathData['basename'], PCLZIP_OPT_REMOVE_PATH, $this->tmpDir, PCLZIP_OPT_ADD_PATH, $pathData['dirname']); if ($res == 0) { throw new \Exception('Error zipping files : ' . $this->oPclZip->errorInfo(true)); } \unlink($this->tmpDir . '/' . $pathData['basename']); return $this; } }