Ver código fonte

Added referer to extra parameter

Tiago Ribeiro 13 anos atrás
pai
commit
c8c231f177

+ 5 - 0
src/Monolog/Processor/WebProcessor.php

@@ -46,12 +46,17 @@ class WebProcessor
             return $record;
         }
 
+        if (!isset($this->serverData['HTTP_REFERER'])) {
+            $this->serverData['HTTP_REFERER'] = null;
+        }
+
         $record['extra'] = array_merge(
             $record['extra'],
             array(
                 'url'         => $this->serverData['REQUEST_URI'],
                 'ip'          => $this->serverData['REMOTE_ADDR'],
                 'http_method' => $this->serverData['REQUEST_METHOD'],
+                'referer'     => $this->serverData['HTTP_REFERER'],
             )
         );
 

+ 2 - 1
tests/Monolog/Handler/AbstractProcessingHandlerTest.php

@@ -64,6 +64,7 @@ class AbstractProcessingHandlerTest extends TestCase
             'REQUEST_URI' => '',
             'REQUEST_METHOD' => '',
             'REMOTE_ADDR' => '',
+            'REQUEST_URI' => '',
         )));
         $handledRecord = null;
         $handler->expects($this->once())
@@ -73,6 +74,6 @@ class AbstractProcessingHandlerTest extends TestCase
             }))
         ;
         $handler->handle($this->getRecord());
-        $this->assertEquals(3, count($handledRecord['extra']));
+        $this->assertEquals(4, count($handledRecord['extra']));
     }
 }

+ 15 - 0
tests/Monolog/Processor/WebProcessorTest.php

@@ -21,12 +21,15 @@ class WebProcessorTest extends TestCase
             'REQUEST_URI'    => 'A',
             'REMOTE_ADDR'    => 'B',
             'REQUEST_METHOD' => 'C',
+            'HTTP_REFERER'   => 'D',
         );
+
         $processor = new WebProcessor($server);
         $record = $processor($this->getRecord());
         $this->assertEquals($server['REQUEST_URI'], $record['extra']['url']);
         $this->assertEquals($server['REMOTE_ADDR'], $record['extra']['ip']);
         $this->assertEquals($server['REQUEST_METHOD'], $record['extra']['http_method']);
+        $this->assertEquals($server['HTTP_REFERER'], $record['extra']['referer']);
     }
 
     public function testProcessorDoNothingIfNoRequestUri()
@@ -40,6 +43,18 @@ class WebProcessorTest extends TestCase
         $this->assertEmpty($record['extra']);
     }
 
+    public function testProcessorReturnNullIfNoHttpReferer()
+    {
+        $server = array(
+            'REQUEST_URI'    => 'A',
+            'REMOTE_ADDR'    => 'B',
+            'REQUEST_METHOD' => 'C',
+        );
+        $processor = new WebProcessor($server);
+        $record = $processor($this->getRecord());
+        $this->assertNull($record['extra']['referer']);
+    }
+
     /**
      * @expectedException UnexpectedValueException
      */