diff --git a/Magento2/Sniffs/Legacy/ObsoleteResponseSniff.php b/Magento2/Sniffs/Legacy/ObsoleteResponseSniff.php new file mode 100644 index 00000000..725a8b15 --- /dev/null +++ b/Magento2/Sniffs/Legacy/ObsoleteResponseSniff.php @@ -0,0 +1,62 @@ + 'Please use \Magento\Framework\View\Layout\Builder::build instead.', + 'renderLayout' => 'Please use \Magento\Framework\Controller\ResultInterface::renderResult instead.', + '_redirect' => 'Please use \Magento\Backend\Model\View\Result\Redirect::render instead.', + '_forward' => 'Please use \Magento\Backend\Model\View\Result\Forward::forward instead.', + '_setActiveMenu' => 'Please use \Magento\Backend\Model\View\Result\Page::setActiveMenu instead.', + '_addBreadcrumb' => 'Please use \Magento\Backend\Model\View\Result\Page::addBreadcrumb instead.', + '_addContent' => 'Please use \Magento\Backend\Model\View\Result\Page::addContent instead.', + '_addLeft' => 'Please use \Magento\Backend\Model\View\Result\Page::addLeft instead.', + '_addJs' => 'Please use \Magento\Backend\Model\View\Result\Page::addJs instead.', + '_moveBlockToContainer' => 'Please use \Magento\Backend\Model\View\Result\Page::moveBlockToContainer instead.', + ]; + + /** + * @inheritdoc + */ + public function register() + { + return [ + T_OBJECT_OPERATOR, + T_FUNCTION + ]; + } + + /** + * @inheritDoc + */ + public function process(File $phpcsFile, $stackPtr) + { + $tokens = $phpcsFile->getTokens(); + $stringPos = $phpcsFile->findNext(T_STRING, $stackPtr + 1); + + foreach ($this->obsoleteResponseMethods as $method => $errorMessage) { + if ($tokens[$stringPos]['content'] === $method) { + $phpcsFile->addWarning( + sprintf('%s method is deprecated. %s', $method, $errorMessage), + $stackPtr, + self::WARNING_CODE_METHOD + ); + } + } + } +} diff --git a/Magento2/Tests/Legacy/ObsoleteResponseUnitTest.inc b/Magento2/Tests/Legacy/ObsoleteResponseUnitTest.inc new file mode 100644 index 00000000..4e33d0f7 --- /dev/null +++ b/Magento2/Tests/Legacy/ObsoleteResponseUnitTest.inc @@ -0,0 +1,39 @@ +_view->loadLayout(['default', 'test'], true, true, false); +$this->_view->renderLayout(); + +protected function _addBreadcrumb($label, $title = null, $link = null) +{ + $this->getLayout()->getBlock('test')->addLink($label, $title, $link); +} + +$this->editPost = $objectManagerHelper->getObject( + TestClass::class, + [ + '_redirect' => $this->redirect, + ] +); + +$this->_redirect('test/path'); + +$this->_forward('grid'); + +$this->_initAction()->_setActiveMenu( + 'Magento_Invitation::report_magento_invitation_order' +)->_addBreadcrumb( + __('Invitation Report by Customers'), + __('Invitation Report by Order Conversion Rate') +)->_addLeft( +)->_addJs( + $this->_view->getLayout()->createBlock(TestBlock::class)->setTemplate('Test::test.phtml') +); + +private function _addContent(AbstractBlock $block) +{ + return $this->_moveBlockToContainer($block, 'content'); +} diff --git a/Magento2/Tests/Legacy/ObsoleteResponseUnitTest.php b/Magento2/Tests/Legacy/ObsoleteResponseUnitTest.php new file mode 100644 index 00000000..b35d43a1 --- /dev/null +++ b/Magento2/Tests/Legacy/ObsoleteResponseUnitTest.php @@ -0,0 +1,40 @@ + 1, + 8 => 1, + 10 => 1, + 22 => 1, + 24 => 1, + 26 => 1, + 28 => 1, + 31 => 1, + 32 => 1, + 36 => 1, + 38 => 1 + ]; + } +} diff --git a/Magento2/ruleset.xml b/Magento2/ruleset.xml index 5966203f..cad4c5ef 100644 --- a/Magento2/ruleset.xml +++ b/Magento2/ruleset.xml @@ -322,6 +322,10 @@ 8 warning + + 8 + warning +