diff --git a/Magento2/Sniffs/Methods/DeprecatedModelMethodSniff.php b/Magento2/Sniffs/Methods/DeprecatedModelMethodSniff.php new file mode 100644 index 00000000..94bfc2d5 --- /dev/null +++ b/Magento2/Sniffs/Methods/DeprecatedModelMethodSniff.php @@ -0,0 +1,79 @@ +getTokens(); + $endOfStatement = $phpcsFile->findEndOfStatement($stackPtr); + $resourcePosition = $phpcsFile->findNext( + T_STRING, + $stackPtr + 1, + $endOfStatement, + false, + self::RESOURCE_METHOD + ); + if ($resourcePosition !== false) { + $methodPosition = $phpcsFile->findNext([T_STRING, T_VARIABLE], $resourcePosition + 1, $endOfStatement); + if ($methodPosition !== false && in_array($tokens[$methodPosition]['content'], $this->methods, true)) { + $phpcsFile->addWarning( + sprintf($this->warningMessage, $tokens[$methodPosition]['content']), + $stackPtr, + $this->warningCode + ); + } + } + } +} diff --git a/Magento2/Tests/Methods/DeprecatedModelMethodUnitTest.inc b/Magento2/Tests/Methods/DeprecatedModelMethodUnitTest.inc new file mode 100644 index 00000000..38e7a817 --- /dev/null +++ b/Magento2/Tests/Methods/DeprecatedModelMethodUnitTest.inc @@ -0,0 +1,13 @@ +getResource()->save($model); + +$model->getResource()->load($model, $id); + +$model->getResource()->delete($model); + +$model->getResource()->myCustomMethod(); + +$model->myCustomMethod(); + +$model->anotherMethodWithResource()->save($model); diff --git a/Magento2/Tests/Methods/DeprecatedModelMethodUnitTest.php b/Magento2/Tests/Methods/DeprecatedModelMethodUnitTest.php new file mode 100644 index 00000000..43d88dd3 --- /dev/null +++ b/Magento2/Tests/Methods/DeprecatedModelMethodUnitTest.php @@ -0,0 +1,31 @@ + 1, + 5 => 1, + 7 => 1, + ]; + } +} diff --git a/Magento2/ruleset.xml b/Magento2/ruleset.xml index 96188ad7..0a0bed7b 100644 --- a/Magento2/ruleset.xml +++ b/Magento2/ruleset.xml @@ -215,6 +215,10 @@ 8 warning + + 8 + warning +