Esempio n. 1
0
 private function addToQueue($url, $referrer)
 {
     $url = (string) $url;
     if (!in_array($url, $this->targets)) {
         $request = new Spizer_Request($url);
         $request->setReferrer($referrer);
         $this->engine->getQueue()->append($request);
         $this->targets[] = $url;
     }
 }
Esempio n. 2
0
 /**
  * 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);
 }
Esempio n. 3
0
 /**
  * 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
 }
Esempio n. 4
0
 /**
  * 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));
     }
 }