diff --git a/src/Standards/Typo3Update/Sniffs/Classname/PhpDocCommentSniff.php b/src/Standards/Typo3Update/Sniffs/Classname/PhpDocCommentSniff.php index d1f7f78..f00fd12 100644 --- a/src/Standards/Typo3Update/Sniffs/Classname/PhpDocCommentSniff.php +++ b/src/Standards/Typo3Update/Sniffs/Classname/PhpDocCommentSniff.php @@ -38,7 +38,7 @@ class Typo3Update_Sniffs_Classname_PhpDocCommentSniff implements PhpCsSniff * The configured tags will be processed. * @var array */ - public $allowedTags = ['@param', '@return', '@var']; + public $allowedTags = ['@param', '@return', '@var', '@validate']; /** * Returns the token types that this sniff is interested in. @@ -69,7 +69,7 @@ class Typo3Update_Sniffs_Classname_PhpDocCommentSniff implements PhpCsSniff if ($classnamePosition === false) { return; } - $classnames = explode('|', explode(' ', $tokens[$classnamePosition]['content'])[0]); + $classnames = array_filter(preg_split('/\||\s|\<|\>|\(/', $tokens[$classnamePosition]['content'])); foreach ($classnames as $classname) { $this->processFeatures($phpcsFile, $classnamePosition, $classname); diff --git a/src/Standards/Typo3Update/ruleset.xml b/src/Standards/Typo3Update/ruleset.xml index f9e1580..5ec5d5d 100644 --- a/src/Standards/Typo3Update/ruleset.xml +++ b/src/Standards/Typo3Update/ruleset.xml @@ -9,7 +9,7 @@ - + diff --git a/tests/Fixtures/Standards/Typo3Update/Sniffs/Classname/PhpDocCommentSniff/Expected.diff b/tests/Fixtures/Standards/Typo3Update/Sniffs/Classname/PhpDocCommentSniff/Expected.diff index 36a8cf7..2efed23 100644 --- a/tests/Fixtures/Standards/Typo3Update/Sniffs/Classname/PhpDocCommentSniff/Expected.diff +++ b/tests/Fixtures/Standards/Typo3Update/Sniffs/Classname/PhpDocCommentSniff/Expected.diff @@ -1,6 +1,6 @@ --- tests/Fixtures/Standards/Typo3Update/Sniffs/Classname/PhpDocCommentSniff/InputFileForIssues.php +++ PHP_CodeSniffer -@@ -22,20 +22,20 @@ +@@ -22,26 +22,26 @@ class InputFileForIssues { /** @@ -10,6 +10,14 @@ */ protected $someVar; + /** +- * @var \TYPO3\CMS\Extbase\Persistence\ObjectStorage +- * @validate Tx_Extbase_Validation_Validator_NumberValidator(property="value") ++ * @var \TYPO3\CMS\Extbase\Persistence\ObjectStorage<\TYPO3\CMS\Extbase\Domain\Model\Category> ++ * @validate \TYPO3\CMS\Extbase\Validation\Validator\NumberValidator(property="value") + */ + protected $someRelation; + /** - * @param t3lib_div + * @param \TYPO3\CMS\Core\Utility\GeneralUtility @@ -20,8 +28,9 @@ */ public function doSomething($something) { -- /** @var t3lib_div $variable */ // This is supported as this is a phpdoc. -+ /** @var \TYPO3\CMS\Core\Utility\GeneralUtility $variable */ // This is supported as this is a phpdoc. - /** @var $variable t3lib_div */ // This is not supported! Use inline comments instead. +- /** @var t3lib_div $variable */ +- /** @var $variable t3lib_div */ ++ /** @var \TYPO3\CMS\Core\Utility\GeneralUtility $variable */ ++ /** @var $variable \TYPO3\CMS\Core\Utility\GeneralUtility */ } } diff --git a/tests/Fixtures/Standards/Typo3Update/Sniffs/Classname/PhpDocCommentSniff/Expected.json b/tests/Fixtures/Standards/Typo3Update/Sniffs/Classname/PhpDocCommentSniff/Expected.json index 89158c7..d06c907 100644 --- a/tests/Fixtures/Standards/Typo3Update/Sniffs/Classname/PhpDocCommentSniff/Expected.json +++ b/tests/Fixtures/Standards/Typo3Update/Sniffs/Classname/PhpDocCommentSniff/Expected.json @@ -1,7 +1,7 @@ { "files": { "InputFileForIssues.php": { - "errors": 4, + "errors": 7, "messages": [ { "column": 13, @@ -13,9 +13,27 @@ "type": "ERROR" }, { - "column": 15, + "column": 13, "fixable": true, "line": 31, + "message": "Legacy classes are not allowed; found \"Tx_Extbase_Domain_Model_Category\", use \"TYPO3\\CMS\\Extbase\\Domain\\Model\\Category\" instead", + "severity": 5, + "source": "Typo3Update.Classname.PhpDocComment.legacyClassname", + "type": "ERROR" + }, + { + "column": 18, + "fixable": true, + "line": 32, + "message": "Legacy classes are not allowed; found \"Tx_Extbase_Validation_Validator_NumberValidator\", use \"TYPO3\\CMS\\Extbase\\Validation\\Validator\\NumberValidator\" instead", + "severity": 5, + "source": "Typo3Update.Classname.PhpDocComment.legacyClassname", + "type": "ERROR" + }, + { + "column": 15, + "fixable": true, + "line": 37, "message": "Legacy classes are not allowed; found \"t3lib_div\", use \"TYPO3\\CMS\\Core\\Utility\\GeneralUtility\" instead", "severity": 5, "source": "Typo3Update.Classname.PhpDocComment.legacyClassname", @@ -24,7 +42,7 @@ { "column": 15, "fixable": false, - "line": 32, + "line": 38, "message": "Calls to removed code are not allowed; found \\TYPO3\\CMS\\Backend\\Template\\MediumDocumentTemplate. Removed in 7.0. Use \\TYPO3\\CMS\\Backend\\Template\\DocumentTemplate instead. See: https://docs.typo3.org/typo3cms/extensions/core/7.6/Changelog/7.0/Breaking-61782-DeprecatedDocumentTemplateClassesRemoved.html", "severity": 5, "source": "Typo3Update.Classname.PhpDocComment.RemovedClass.TYPO3_CMS_Backend_Template_MediumDocumentTemplate", @@ -33,7 +51,7 @@ { "column": 16, "fixable": true, - "line": 34, + "line": 40, "message": "Legacy classes are not allowed; found \"Tx_Extbase_Configuration_Configurationmanager\", use \"TYPO3\\CMS\\Extbase\\Configuration\\ConfigurationManager\" instead", "severity": 5, "source": "Typo3Update.Classname.PhpDocComment.legacyClassname", @@ -42,7 +60,16 @@ { "column": 18, "fixable": true, - "line": 38, + "line": 44, + "message": "Legacy classes are not allowed; found \"t3lib_div\", use \"TYPO3\\CMS\\Core\\Utility\\GeneralUtility\" instead", + "severity": 5, + "source": "Typo3Update.Classname.PhpDocComment.legacyClassname", + "type": "ERROR" + }, + { + "column": 18, + "fixable": true, + "line": 45, "message": "Legacy classes are not allowed; found \"t3lib_div\", use \"TYPO3\\CMS\\Core\\Utility\\GeneralUtility\" instead", "severity": 5, "source": "Typo3Update.Classname.PhpDocComment.legacyClassname", @@ -53,8 +80,8 @@ } }, "totals": { - "errors": 4, - "fixable": 4, + "errors": 7, + "fixable": 7, "warnings": 1 } } diff --git a/tests/Fixtures/Standards/Typo3Update/Sniffs/Classname/PhpDocCommentSniff/InputFileForIssues.php b/tests/Fixtures/Standards/Typo3Update/Sniffs/Classname/PhpDocCommentSniff/InputFileForIssues.php index 7a2de67..6146222 100644 --- a/tests/Fixtures/Standards/Typo3Update/Sniffs/Classname/PhpDocCommentSniff/InputFileForIssues.php +++ b/tests/Fixtures/Standards/Typo3Update/Sniffs/Classname/PhpDocCommentSniff/InputFileForIssues.php @@ -27,6 +27,12 @@ class InputFileForIssues */ protected $someVar; + /** + * @var \TYPO3\CMS\Extbase\Persistence\ObjectStorage + * @validate Tx_Extbase_Validation_Validator_NumberValidator(property="value") + */ + protected $someRelation; + /** * @param t3lib_div * @param \TYPO3\CMS\Backend\Template\MediumDocumentTemplate @@ -35,7 +41,7 @@ class InputFileForIssues */ public function doSomething($something) { - /** @var t3lib_div $variable */ // This is supported as this is a phpdoc. - /** @var $variable t3lib_div */ // This is not supported! Use inline comments instead. + /** @var t3lib_div $variable */ + /** @var $variable t3lib_div */ } }