소스 검색

added support for setting a custom default format in Request::getRequestFormat()

Lukas Kahwe Smith 14 년 전
부모
커밋
53c7bcf3aa
2개의 변경된 파일18개의 추가작업 그리고 3개의 파일을 삭제
  1. 5 3
      src/Symfony/Component/HttpFoundation/Request.php
  2. 13 0
      tests/Symfony/Tests/Component/HttpFoundation/RequestTest.php

+ 5 - 3
src/Symfony/Component/HttpFoundation/Request.php

@@ -630,14 +630,16 @@ class Request
      *
      *  * format defined by the user (with setRequestFormat())
      *  * _format request parameter
-     *  * null
+     *  * $default
+     *
+     * @param string  $default     The default format
      *
      * @return string The request format
      */
-    public function getRequestFormat()
+    public function getRequestFormat($default = 'html')
     {
         if (null === $this->format) {
-            $this->format = $this->get('_format', 'html');
+            $this->format = $this->get('_format', $default);
         }
 
         return $this->format;

+ 13 - 0
tests/Symfony/Tests/Component/HttpFoundation/RequestTest.php

@@ -666,4 +666,17 @@ class RequestTest extends \PHPUnit_Framework_TestCase
         $request->headers->set('Accept-language', 'zh, i-cherokee; q=0.6');
         $this->assertEquals(array('zh', 'cherokee'), $request->getLanguages());
     }
+
+    public function testGetRequestFormat()
+    {
+        $request = new Request();
+        $this->assertEquals('html', $request->getRequestFormat());
+
+        $request = new Request();
+        $this->assertEquals(null, $request->getRequestFormat(null));
+
+        $request = new Request();
+        $this->assertEquals(null, $request->setRequestFormat('foo'));
+        $this->assertEquals('foo', $request->getRequestFormat(null));
+    }
 }