diff --git a/CakePHP/Sniffs/Commenting/FunctionCommentSniff.php b/CakePHP/Sniffs/Commenting/FunctionCommentSniff.php
index d089e29..8752227 100644
--- a/CakePHP/Sniffs/Commenting/FunctionCommentSniff.php
+++ b/CakePHP/Sniffs/Commenting/FunctionCommentSniff.php
@@ -16,7 +16,6 @@
use PHP_CodeSniffer\Files\File;
use PHP_CodeSniffer\Sniffs\Sniff;
-use PHP_CodeSniffer\Util\Common;
use PHP_CodeSniffer\Util\Tokens;
/**
@@ -178,7 +177,6 @@ public function process(File $phpcsFile, $stackPtr)
$this->processReturn($phpcsFile, $stackPtr, $commentStart);
$this->processThrows($phpcsFile, $stackPtr, $commentStart);
- $this->processParams($phpcsFile, $stackPtr, $commentStart);
}
/**
@@ -387,190 +385,4 @@ protected function processThrows(File $phpcsFile, $stackPtr, $commentStart)
}
}
}
-
- /**
- * Process the function parameter comments.
- *
- * @param \PHP_CodeSniffer\Files\File $phpcsFile The file being scanned.
- * @param int $stackPtr The position of the current token in the stack passed in $tokens.
- * @param int $commentStart The position in the stack where the comment started.
- * @return void
- */
- protected function processParams(File $phpcsFile, $stackPtr, $commentStart)
- {
- if ($this->isInheritDoc($phpcsFile, $commentStart)) {
- return;
- }
-
- $tokens = $phpcsFile->getTokens();
-
- $params = [];
- $maxType = $maxVar = 0;
- foreach ($tokens[$commentStart]['comment_tags'] as $pos => $tag) {
- if ($tokens[$tag]['content'] !== '@param') {
- continue;
- }
-
- $type = $var = $comment = '';
- $typeSpace = $varSpace = 0;
- $commentLines = [];
- if ($tokens[$tag + 2]['code'] === T_DOC_COMMENT_STRING) {
- $matches = [];
- preg_match('/([^$]+)(?:((?:\$|&)[^\s]+)(?:(\s+)(.*))?)?/', $tokens[$tag + 2]['content'], $matches);
-
- $typeLen = strlen($matches[1]);
- $type = trim($matches[1]);
- $typeSpace = $typeLen - strlen($type);
- $typeLen = strlen($type);
- if ($typeLen > $maxType) {
- $maxType = $typeLen;
- }
-
- if (isset($matches[2]) === true) {
- $var = $matches[2];
- $varLen = strlen($var);
- if ($varLen > $maxVar) {
- $maxVar = $varLen;
- }
-
- if (isset($matches[4]) === true) {
- $varSpace = strlen($matches[3]);
- $comment = $matches[4];
- $commentLines[] = [
- 'comment' => $comment,
- 'token' => $tag + 2,
- 'indent' => $varSpace,
- ];
-
- // Any strings until the next tag belong to this comment.
- if (isset($tokens[$commentStart]['comment_tags'][$pos + 1]) === true) {
- $end = $tokens[$commentStart]['comment_tags'][$pos + 1];
- } else {
- $end = $tokens[$commentStart]['comment_closer'];
- }
-
- for ($i = $tag + 3; $i < $end; $i++) {
- if ($tokens[$i]['code'] === T_DOC_COMMENT_STRING) {
- $indent = 0;
- if ($tokens[$i - 1]['code'] === T_DOC_COMMENT_WHITESPACE) {
- $indent = strlen($tokens[$i - 1]['content']);
- }
-
- $comment .= ' ' . $tokens[$i]['content'];
- $commentLines[] = [
- 'comment' => $tokens[$i]['content'],
- 'token' => $i,
- 'indent' => $indent,
- ];
- }
- }
- } else {
- $error = 'Missing parameter comment';
- $phpcsFile->addError($error, $tag, 'MissingParamComment');
- $commentLines[] = ['comment' => ''];
- }
- } else {
- $error = 'Missing parameter name';
- $phpcsFile->addError($error, $tag, 'MissingParamName');
- }
- } else {
- $error = 'Missing parameter type';
- $phpcsFile->addError($error, $tag, 'MissingParamType');
- }
-
- $params[] = compact('tag', 'type', 'var', 'comment', 'commentLines', 'typeSpace', 'varSpace');
- }
-
- $realParams = $phpcsFile->getMethodParameters($stackPtr);
- $foundParams = [];
-
- foreach ($params as $pos => $param) {
- // If the type is empty, the whole line is empty.
- if ($param['type'] === '') {
- continue;
- }
-
- // Check the param type value.
- $typeNames = explode('|', $param['type']);
- foreach ($typeNames as $typeName) {
- if ($typeName === 'integer') {
- $suggestedName = 'int';
- } elseif ($typeName === 'boolean') {
- $suggestedName = 'bool';
- } elseif (in_array($typeName, ['int', 'bool'])) {
- $suggestedName = $typeName;
- } else {
- $suggestedName = Common::suggestType($typeName);
- }
-
- if ($typeName !== $suggestedName) {
- $error = 'Expected "%s" but found "%s" for parameter type';
- $data = [$suggestedName, $typeName];
-
- $fix = $phpcsFile->addFixableError($error, $param['tag'], 'IncorrectParamVarName', $data);
- if ($fix === true) {
- $content = $suggestedName;
- $content .= str_repeat(' ', $param['typeSpace']);
- $content .= $param['var'];
- $content .= str_repeat(' ', $param['varSpace']);
- if (isset($param['commentLines'][0])) {
- $content .= $param['commentLines'][0]['comment'];
- }
- $phpcsFile->fixer->replaceToken($param['tag'] + 2, $content);
- }
- }
- }
-
- if ($param['var'] === '') {
- continue;
- }
-
- $foundParams[] = $param['var'];
-
- // Make sure the param name is correct.
- if (isset($realParams[$pos]) === true) {
- $realName = $realParams[$pos]['name'];
- if ($realName !== $param['var']) {
- $code = 'ParamNameNoMatch';
- $data = [$param['var'], $realName];
-
- $error = 'Doc comment for parameter %s does not match ';
- if (strtolower($param['var']) === strtolower($realName)) {
- $error .= 'case of ';
- $code = 'ParamNameNoCaseMatch';
- }
-
- $error .= 'actual variable name %s';
-
- $fix = $phpcsFile->addFixableWarning($error, $param['tag'], $code, $data);
-
- if ($fix === true) {
- $content = $suggestedName;
- $content .= str_repeat(' ', $param['typeSpace']);
- $content .= $realName;
- $content .= str_repeat(' ', $param['varSpace']);
- $content .= $param['commentLines'][0]['comment'];
- $phpcsFile->fixer->replaceToken($param['tag'] + 2, $content);
- }
- }
- } elseif (substr($param['var'], -4) !== ',...') {
- // We must have an extra parameter comment.
- $error = 'Superfluous parameter comment';
- $phpcsFile->addError($error, $param['tag'], 'ExtraParamComment');
- }
- }
-
- $realNames = [];
- foreach ($realParams as $realParam) {
- $realNames[] = $realParam['name'];
- }
-
- // Report missing comments.
- $diff = array_diff($realNames, $foundParams);
- foreach ($diff as $neededParam) {
- $error = 'Doc comment for parameter "%s" missing';
- $data = [$neededParam];
- $phpcsFile->addWarning($error, $commentStart, 'MissingParamTag', $data);
- }
- }
}
diff --git a/CakePHP/Tests/Commenting/FunctionCommentUnitTest.inc b/CakePHP/Tests/Commenting/FunctionCommentUnitTest.inc
index df8fc33..4f1bb86 100644
--- a/CakePHP/Tests/Commenting/FunctionCommentUnitTest.inc
+++ b/CakePHP/Tests/Commenting/FunctionCommentUnitTest.inc
@@ -6,39 +6,6 @@ use Other\Error as OtherError;
class Foo
{
- /**
- * Some sentence.
- *
- * @param integer $param Some Param.
- * @param boolean $otherParam Some Other Param.
- * @return string Something.
- */
- public function bar($param, $otherParam)
- {
- }
-
- /**
- * Some sentence.
- *
- * @param int $param
- * @param bool $otherParam
- * @return void
- */
- public function missingParamComment($param, $otherParam)
- {
- }
-
- /**
- * Some sentence.
- *
- * @param
- * @param
- * @return void
- */
- public function missingParamType($param, $otherParam)
- {
- }
-
/**
* Some sentence.
*
@@ -134,22 +101,6 @@ class Foo
return;
}
- /**
- * @param int $para Comment.
- * @return void
- */
- public function paramNameNoMatch($param)
- {
- }
-
- /**
- * @param int $Param Comment.
- * @return void
- */
- public function paramNameNoCaseMatch($param)
- {
- }
-
/**
*
*/
@@ -158,23 +109,6 @@ class Foo
return 'what';
}
- /**
- * @param int
- * @return void
- */
- public function missingParamName($param)
- {
- }
-
- /**
- * @param int $param A description.
- * @param int $superflous A description.
- * @return void
- */
- public function extraParamComment($param)
- {
- }
-
/**
* @inheritDoc
*/
diff --git a/CakePHP/Tests/Commenting/FunctionCommentUnitTest.inc.fixed b/CakePHP/Tests/Commenting/FunctionCommentUnitTest.inc.fixed
index bc2240a..d24d9c8 100644
--- a/CakePHP/Tests/Commenting/FunctionCommentUnitTest.inc.fixed
+++ b/CakePHP/Tests/Commenting/FunctionCommentUnitTest.inc.fixed
@@ -6,39 +6,6 @@ use Other\Error as OtherError;
class Foo
{
- /**
- * Some sentence.
- *
- * @param int $param Some Param.
- * @param bool $otherParam Some Other Param.
- * @return string Something.
- */
- public function bar($param, $otherParam)
- {
- }
-
- /**
- * Some sentence.
- *
- * @param int $param
- * @param bool $otherParam
- * @return void
- */
- public function missingParamComment($param, $otherParam)
- {
- }
-
- /**
- * Some sentence.
- *
- * @param
- * @param
- * @return void
- */
- public function missingParamType($param, $otherParam)
- {
- }
-
/**
* Some sentence.
*
diff --git a/CakePHP/Tests/Commenting/FunctionCommentUnitTest.php b/CakePHP/Tests/Commenting/FunctionCommentUnitTest.php
index 4333179..8716e8f 100644
--- a/CakePHP/Tests/Commenting/FunctionCommentUnitTest.php
+++ b/CakePHP/Tests/Commenting/FunctionCommentUnitTest.php
@@ -12,16 +12,8 @@ class FunctionCommentUnitTest extends AbstractSniffUnitTest
public function getErrorList()
{
return [
- 12 => 1,
- 13 => 1,
- 23 => 1,
- 24 => 1,
- 34 => 1,
- 35 => 1,
- 90 => 1,
- 97 => 1,
- 162 => 1,
- 171 => 1,
+ 57 => 1,
+ 64 => 1,
];
}
@@ -31,18 +23,11 @@ public function getErrorList()
public function getWarningList()
{
return [
- 14 => 1,
- 31 => 2,
- 45 => 1,
- 124 => 1,
- 129 => 1,
- 137 => 1,
- 138 => 1,
- 145 => 1,
- 146 => 1,
- 155 => 1,
- 161 => 1,
- 226 => 1,
+ 12 => 1,
+ 91 => 1,
+ 96 => 1,
+ 106 => 1,
+ 160 => 1,
];
}
}
diff --git a/CakePHP/ruleset.xml b/CakePHP/ruleset.xml
index 6acb9bc..0f0819e 100644
--- a/CakePHP/ruleset.xml
+++ b/CakePHP/ruleset.xml
@@ -199,6 +199,14 @@
+
+
+
+
+
+
+
+