/** * Log the request object * * @param Spizer_Request $request * @see Spizer_Logger_Interface::logRequest() */ public function logRequest(Spizer_Request $request) { $this->_writer->startElement('request'); $this->_writer->writeAttribute('microtime', microtime(true)); $this->_writer->writeElement('uri', $request->getUri()); $this->_writer->writeElement('method', $request->getMethod()); $ref = $request->getReferrer(); if ($ref) { $this->_writer->writeElement('referrer', $ref); } if ($this->_config['logheaders']) { foreach ($request->getAllHeaders() as $header => $value) { $this->_logHeader($header, $value); } } $this->_writer->endElement(); // request }
/** * Instantiate a new Document object depending on content type * * @param Spizer_Request $request * @param Spizer_Response $response * @return Spizer_Document */ public static function factory(Spizer_Request $request, Spizer_Response $response) { $url = $request->getUri(); $code = $response->getStatus(); $headers = $response->getAllHeaders(); $body = $response->getBody(); // Find out the content type of the document if (isset($headers['content-type'])) { preg_match('/^[^;\\s]+/', $headers['content-type'], $m); $type = $m[0]; unset($m); } else { $type = ''; } switch ($type) { case 'text/html': case 'text/xhtml': $class = 'Spizer_Document_Html'; break; case 'text/xml': case 'application/xml': $class = 'Spizer_Document_Xml'; break; default: $class = 'Spizer_Document'; break; } Zend_Loader::loadClass($class); return new $class($url, $code, $headers, $body); }
/** * Log request information * * @param Spizer_Request $request */ public function logRequest(Spizer_Request $request) { $this->_db->insert('requests', array('microtime' => microtime(true), 'url' => $request->getUri(), 'referrer' => $request->getReferrer(), 'method' => $request->getMethod())); $this->_currentReqId = $this->_db->lastInsertId('requests', 'id'); $stmt = $this->_db->prepare("INSERT INTO request_headers (request_id, header, value) VALUES ({$this->_currentReqId}, ?, ?)"); foreach ($request->getAllHeaders() as $k => $v) { $stmt->execute(array($k, $v)); } }