maniaControl = $maniaControl; $this->url = $url; } //TODO merge loadFile / postData public function getData($keepAlive = 0) { array_push($this->headers, 'Content-Type: ' . $this->contentType); if ($keepAlive) { array_push($headers, 'Keep-Alive: ' . $keepAlive); array_push($headers, 'Connection: Keep-Alive'); } $fileReader = new AsynchronousFileReader($this->maniaControl); $request = $fileReader->newRequest($this->url); $request->getOptions()->set(CURLOPT_AUTOREFERER, true)// accept link reference ->set(CURLOPT_HTTPHEADER, $this->headers); // headers $request->addListener('complete', function (Event $event) use (&$function) { $error = null; $content = null; if ($event->response->hasError()) { $error = $event->response->getError()->getMessage(); } else { $content = $event->response->getContent(); } call_user_func($function, $content, $error); }); $fileReader->addRequest($request); } public function postData() { array_push($this->headers, 'Content-Type: ' . $this->contentType); array_push($this->headers, 'Keep-Alive: timeout=600, max=2000'); array_push($this->headers, 'Connection: Keep-Alive'); $content = str_replace(array("\r", "\n"), '', $this->content); if ($this->compression) { $content = zlib_encode($content, 31); array_push($headers, 'Content-Encoding: gzip'); } $fileReader = new AsynchronousFileReader($this->maniaControl); $request = $fileReader->newRequest($this->url); $request->getOptions()->set(CURLOPT_POST, true)// post method ->set(CURLOPT_POSTFIELDS, $content)// post content field ->set(CURLOPT_HTTPHEADER, $this->headers) // headers ; $request->addListener('complete', function (Event $event) use (&$function) { $error = null; $content = null; if ($event->response->hasError()) { $error = $event->response->getError()->getMessage(); } else { $content = $event->response->getContent(); } call_user_func($function, $content, $error); }); $fileReader->addRequest($request); } /** * @param $url * @return $this */ public function setURL($url) { $this->url = $url; return $this; } /** * @param callable $function * @return $this */ public function setCallable($function) { $this->function = $function; return $this; } /** * @return mixed */ public function getContent() { return $this->content; } /** * @param mixed $content * @return $this */ public function setContent($content) { $this->content = $content; return $this; } /** * @return boolean */ public function getCompression() { return $this->compression; } /** * @param boolean $compression * @return $this */ public function setCompression($compression) { $this->compression = $compression; return $this; } /** * @return array */ public function getHeaders() { return $this->headers; } /** * @param array $headers * @return $this */ public function setHeaders($headers) { $this->headers = $headers; return $this; } /** * @return string */ public function getContentType() { return $this->contentType; } /** * @param string $contentType * @return $this */ public function setContentType($contentType) { $this->contentType = $contentType; return $this; } }