Skip to content

Commit

Permalink
Add CakeRequest::param()
Browse files Browse the repository at this point in the history
This method gives a read accessor to the data in $request->params.
It removes the need to use isset() and empty().
  • Loading branch information
markstory committed Feb 4, 2013
1 parent 80b8e7d commit 103bbbc
Show file tree
Hide file tree
Showing 2 changed files with 34 additions and 0 deletions.
14 changes: 14 additions & 0 deletions lib/Cake/Network/CakeRequest.php
Expand Up @@ -805,6 +805,20 @@ public function data($name) {
return Hash::get($this->data, $name);
}

/**
* Safely access the values in $this->params.
*
* @param string $name The name of the parameter to get.
* @return mixed The value of the provided parameter. Will
* return false if the parameter doesn't exist or is falsey.
*/
public function param($name) {
if (!isset($this->params[$name])) {
return false;
}
return $this->params[$name];
}

/**
* Read data from `php://input`. Useful when interacting with XML or JSON
* request body content.
Expand Down
20 changes: 20 additions & 0 deletions lib/Cake/Test/Case/Network/CakeRequestTest.php
Expand Up @@ -1768,6 +1768,26 @@ public function testQueryWithArray() {
$this->assertNull($result);
}

/**
* Test using param()
*
* @return void
*/
public function testReadingParams() {
$request = new CakeRequest();
$request->addParams(array(
'controller' => 'posts',
'admin' => true,
'truthy' => 1,
'zero' => '0',
));
$this->assertFalse($request->param('not_set'));
$this->assertTrue($request->param('admin'));
$this->assertEquals(1, $request->param('truthy'));
$this->assertEquals('posts', $request->param('controller'));
$this->assertEquals('0', $request->param('zero'));
}

/**
* test the data() method reading
*
Expand Down

0 comments on commit 103bbbc

Please sign in to comment.