From 1ad070ff9dc030fcaad65318f9cbc2bc8edba9ed Mon Sep 17 00:00:00 2001 From: Lena Orobei Date: Tue, 15 Jan 2019 16:02:04 -0600 Subject: [PATCH] Sniff for the rule "The use of final keyword is prohibited" --- .../Sniffs/PHP/FinalImplementationSniff.php | 36 +++++++++++++++++++ .../Tests/PHP/FinalImplementationUnitTest.inc | 13 +++++++ .../Tests/PHP/FinalImplementationUnitTest.php | 33 +++++++++++++++++ Magento/ruleset.xml | 3 ++ 4 files changed, 85 insertions(+) create mode 100644 Magento/Sniffs/PHP/FinalImplementationSniff.php create mode 100644 Magento/Tests/PHP/FinalImplementationUnitTest.inc create mode 100644 Magento/Tests/PHP/FinalImplementationUnitTest.php diff --git a/Magento/Sniffs/PHP/FinalImplementationSniff.php b/Magento/Sniffs/PHP/FinalImplementationSniff.php new file mode 100644 index 00000000..5db2828b --- /dev/null +++ b/Magento/Sniffs/PHP/FinalImplementationSniff.php @@ -0,0 +1,36 @@ +addError( + // phpcs:ignore Generic.Files.LineLength.TooLong + 'Final keyword is prohibited in Magento. It decreases extensibility and is not compatible with plugins and proxies.', + $stackPtr, + 'FoundFinal' + ); + } +} diff --git a/Magento/Tests/PHP/FinalImplementationUnitTest.inc b/Magento/Tests/PHP/FinalImplementationUnitTest.inc new file mode 100644 index 00000000..99381b5f --- /dev/null +++ b/Magento/Tests/PHP/FinalImplementationUnitTest.inc @@ -0,0 +1,13 @@ + 1, + 6 => 1, + ]; + } + + /** + * @inheritdoc + */ + public function getWarningList() + { + return []; + } +} diff --git a/Magento/ruleset.xml b/Magento/ruleset.xml index 10bd7805..b009a662 100644 --- a/Magento/ruleset.xml +++ b/Magento/ruleset.xml @@ -104,6 +104,9 @@ 8 + + 10 + 10