Skip to content

Commit

Permalink
Merge pull request yiisoft#2181 from cebe/request-body-default-post-p…
Browse files Browse the repository at this point in the history
…arams

removed getPostParam() from Request, body is $_POST by default
  • Loading branch information
samdark committed Jan 28, 2014
2 parents df52510 + bc80101 commit 8c7ae47
Show file tree
Hide file tree
Showing 2 changed files with 5 additions and 49 deletions.
3 changes: 1 addition & 2 deletions framework/CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -104,7 +104,6 @@ Yii Framework 2 Change Log
- Enh: `init` of advanced application now allows to specify answer for overwriting files via `init --overwrite=n` (samdark)
- Enh: Added `TableSchema::fullName` property (qiangxue)
- Enh: yii\codeception\TestCase now supports loading and using fixtures via Yii fixture framework (qiangxue)
- Enh: Added support to parse json request data to Request::getRestParams() (cebe)
- Enh: Added ability to get incoming headers (dizews)
- Enh: Added `beforeRun()` and `afterRun()` to `yii\base\Action` (qiangxue)
- Enh: Added support for using timeZone with `yii\base\Formatter` (dizews)
Expand All @@ -120,7 +119,7 @@ Yii Framework 2 Change Log
- Chg #1958: `beforeSubmit` in `yii.activeform` is now executed after validation and before form submission (6pblcb)
- Chg #2025: Removed ability to declare scopes in ActiveRecord (samdark)
- Chg #2043: Renamed `yii\web\Request::acceptedLanguages` to `acceptableLanguages` (qiangxue)
- Chg #2043: Removed `yii\web\Request::getPut()`, `getDelete()`, `getPatch()` in favor of `getBodyParam()` (cebe)
- Chg #2043: Removed `yii\web\Request::getPost()`, `getPut()`, `getDelete()`, `getPatch()` in favor of `getBodyParam()` (cebe)
- Chg #2043: Renamed `yii\web\Request::get()` to `getQueryParams()` and `getRestParams()` to `getBodyParams()` (cebe)
- Chg #2057: AutoTimestamp attributes defaults changed from `create_time` and `update_time` to `created_at` and `updated_at` (creocoder)
- Chg #2059: Implemented git-flavored file excluding/filtering for `FileHelper` (nineinchnick)
Expand Down
51 changes: 4 additions & 47 deletions framework/web/Request.php
Original file line number Diff line number Diff line change
Expand Up @@ -344,6 +344,9 @@ public function getBodyParams()
throw new InvalidConfigException("The fallback request parser is invalid. It must implement the yii\\web\\RequestParserInterface.");
}
$this->_bodyParams = $parser->parse($this->getRawBody(), $contentType);
} elseif ($this->getMethod() === 'POST') {
// PHP has already parsed the body so we have all params in $_POST
$this->_bodyParams = $_POST;
} else {
$this->_bodyParams = [];
mb_parse_str($this->getRawBody(), $this->_bodyParams);
Expand Down Expand Up @@ -411,7 +414,6 @@ public function setQueryParams($values)
* @param string $name the GET parameter name. If not specified, whole $_GET is returned.
* @param mixed $defaultValue the default parameter value if the GET parameter does not exist.
* @return mixed the GET parameter value
* @see getPostParam()
* @see getBodyParam()
*/
public function getQueryParam($name, $defaultValue = null)
Expand All @@ -420,51 +422,6 @@ public function getQueryParam($name, $defaultValue = null)
return isset($params[$name]) ? $params[$name] : $defaultValue;
}

private $_postParams;

/**
* Returns the POST request parameters.
*
* This method will return the contents of `$_POST` if params where not explicitly set.
* @return array the request POST parameter values.
* @see setPostParams()
* @see getPostParam()
*/
public function getPostParams()
{
if ($this->_postParams === null) {
return $_POST;
}
return $this->_postParams;
}

/**
* Sets the request POST parameters.
* @param array $values the request POST parameters (name-value pairs)
* @see getPostParam()
* @see getPostParams()
*/
public function setPostParams($values)
{
$this->_postParams = $values;
}

/**
* Returns the named POST parameter value.
* If the POST parameter does not exist, the second parameter to this method will be returned.
* @param string $name the POST parameter name. If not specified, whole $_POST is returned.
* @param mixed $defaultValue the default parameter value if the POST parameter does not exist.
* @property array the POST request parameter values
* @return mixed the POST parameter value
* @see getQueryParam()
* @see getBodyParam() for request method independent body parameters.
*/
public function getPostParam($name, $defaultValue = null)
{
$params = $this->getPostParams();
return isset($params[$name]) ? $params[$name] : $defaultValue;
}

private $_hostInfo;

/**
Expand Down Expand Up @@ -1204,7 +1161,7 @@ public function validateCsrfToken()
return true;
}
$trueToken = $this->getCookies()->getValue($this->csrfVar);
$token = $method === 'POST' ? $this->getPostParam($this->csrfVar) : $this->getBodyParam($this->csrfVar);
$token = $this->getBodyParam($this->csrfVar);
return $this->validateCsrfTokenInternal($token, $trueToken)
|| $this->validateCsrfTokenInternal($this->getCsrfTokenFromHeader(), $trueToken);
}
Expand Down

0 comments on commit 8c7ae47

Please sign in to comment.