From ce04134db24d3bcdc0388f5b7832dd1dbb1945ef Mon Sep 17 00:00:00 2001 From: Carsten Brandt Date: Mon, 27 Jan 2014 11:03:50 +0100 Subject: [PATCH 1/2] removed getPostParam() from Request, body is $_POST by default fixes #2093 --- framework/web/Request.php | 51 +++------------------------------------ 1 file changed, 4 insertions(+), 47 deletions(-) diff --git a/framework/web/Request.php b/framework/web/Request.php index 8b40d27c4d..ec638a1cc3 100644 --- a/framework/web/Request.php +++ b/framework/web/Request.php @@ -344,6 +344,9 @@ class Request extends \yii\base\Request 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); @@ -411,7 +414,6 @@ class Request extends \yii\base\Request * @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) @@ -420,51 +422,6 @@ class Request extends \yii\base\Request 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; /** @@ -1204,7 +1161,7 @@ class Request extends \yii\base\Request 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); } From bc80101befd6a41e27078e66170b0f37b6137c3c Mon Sep 17 00:00:00 2001 From: Carsten Brandt Date: Mon, 27 Jan 2014 11:08:41 +0100 Subject: [PATCH 2/2] adjusted changeloadjusted changelogg --- framework/CHANGELOG.md | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/framework/CHANGELOG.md b/framework/CHANGELOG.md index 619403ed73..75bd503b44 100644 --- a/framework/CHANGELOG.md +++ b/framework/CHANGELOG.md @@ -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) @@ -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)