Magento2 : Controller Structure

Controller Structure of Magento2
Before Creating Controller visit  Magento Directory Structure  
namespace NameSpace\Module\Controller\Adminhtml\Foldername;
use \Magento\Backend\App\Action;
use \Magento\Backend\App\Action\Context;
use \Magento\Framework\View\Result\PageFactory;

class ControllerName extends Action 
{

    protected $_resultPageFactory;
    protected $_resultPage;

    public function __construct(Context $context, PageFactory $resultPageFactory) 
    {
        parent::__construct($context);
        $this->_resultPageFactory = $resultPageFactory;
    }

    public function execute() 
    {
        $this->_setPageData();
        return $this->getResultPage();
    }

    
    public function getResultPage() 
    {
        if (is_null($this->_resultPage)) {
            $this->_resultPage = $this->_resultPageFactory->create();
            
        }
        return $this->_resultPage;
    }

    protected function _setPageData() 
    {
        $resultPage = $this->getResultPage();
        $resultPage->setActiveMenu('NameSpace_Module::module');
        $resultPage->getConfig()->getTitle()->prepend(__('Title Name'));
        return $this;
    }

} 
Ajax Controller Structure of Magento2 : 
It set response in json
namespace NameSpace\Module\Controller\Adminhtml;
use Magento\Backend\App\Action;
use Magento\Backend\App\Action\Context;

class GetSupplierAction extends Action
{

    protected $resultJsonFactory;
    protected $helper;
    
    public function __construct(
    Context $context,
    \NameSpace\Module\Helper\Data $helper,        
    \Magento\Framework\Controller\Result\JsonFactory $resultJsonFactory
    ) 
    {
        parent::__construct($context);
        $this->helper = $helper;
        $this->resultJsonFactory = $resultJsonFactory;
    }

    protected function _isAllowed() 
    {
        return true;
    }

    public function execute() 
    {
          $result = $this->resultJsonFactory->create();
          $data = $this->getRequest()->getPostValue();
          $supplierDetail = $this->helper->getFunctionName($data['supplierId']);
          return $result->setData($supplierDetail);

    }
  
}

Comments