Browse Source

Merge pull request #1471 from cakephp/feature/2.4-pretty-print

pretty print json and xml responses in debug mode
Andy Dawson 12 years ago
parent
commit
f34388c53a

+ 5 - 0
lib/Cake/Test/Case/View/JsonViewTest.php

@@ -30,6 +30,11 @@ App::uses('JsonView', 'View');
  */
 class JsonViewTest extends CakeTestCase {
 
+	public function setUp() {
+		parent::setUp();
+		Configure::write('debug', 0);
+	}
+
 /**
  * testRenderWithoutView method
  *

+ 5 - 0
lib/Cake/Test/Case/View/XmlViewTest.php

@@ -30,6 +30,11 @@ App::uses('XmlView', 'View');
  */
 class XmlViewTest extends CakeTestCase {
 
+	public function setUp() {
+		parent::setUp();
+		Configure::write('debug', 0);
+	}
+
 /**
  * testRenderWithoutView method
  *

+ 5 - 0
lib/Cake/View/JsonView.php

@@ -128,6 +128,11 @@ class JsonView extends View {
 		} else {
 			$data = isset($this->viewVars[$serialize]) ? $this->viewVars[$serialize] : null;
 		}
+
+		if (version_compare(PHP_VERSION, '5.4.0', '>=') && Configure::read('debug')) {
+			return json_encode($data, JSON_PRETTY_PRINT);
+		}
+
 		return json_encode($data);
 	}
 

+ 7 - 1
lib/Cake/View/XmlView.php

@@ -116,7 +116,13 @@ class XmlView extends View {
 				$data = array($rootNode => array($serialize => $data));
 			}
 		}
-		return Xml::fromArray($data)->asXML();
+
+		$options = array();
+		if (Configure::read('debug')) {
+			$options['pretty'] = true;
+		}
+
+		return Xml::fromArray($data, $options)->asXML();
 	}
 
 }