For Ex. if you call helper function from controller, then you can call PHTML and get data using following way :
/app/code/Vendor/Module/Controller/Index/Index.php
<?php
namespace Vendor\Module\Controller\Index;
class Index extends \Magento\Framework\App\Action\Action
{
/**
* @var \Magento\Framework\App\Request\Http
*/
protected $request;
/**
* @var \Vendor\Module\Helper\Data
*/
protected $helperData;
/**
* [__construct description]
* @param \Magento\Framework\App\Request\Http $request [description]
* @param \Magento\Framework\App\Action\Context $context [description]
* @param \Vendor\Module\Helper\Data $helperData [description]
*/
public function __construct(
\Magento\Framework\App\Request\Http $request,
\Magento\Framework\App\Action\Context $context,
\Vendor\Module\Helper\Data $helperData
) {
$this->request = $request;
$this->helperData = $helperData;
parent::__construct($context);
}
public function execute()
{
return $this->helperData->getPhtml();
}
}
/app/code/Vendor/Module/Helper/Data.php
<?php
namespace Vendor\Module\Helper;
use Magento\Framework\View\Result\PageFactory;
class Data extends \Magento\Framework\App\Helper\AbstractHelper
{
/**
* @var \Magento\Framework\Registry
*/
protected $registry;
/**
* @var \Magento\Framework\View\Result\PageFactory
*/
protected $resultPageFactory;
/**
* [__construct description]
* @param \Magento\Framework\Registry $registry [description]
* @param PageFactory $resultPageFactory [description]
*/
public function __construct(
\Magento\Framework\Registry $registry,
PageFactory $resultPageFactory
) {
$this->registry = $registry;
$this->resultPageFactory = $resultPageFactory;
}
public function getPhtml()
{
$resultPage = $this->resultPageFactory->create();
$block = $resultPage->getLayout()
->createBlock('Magento\Framework\View\Element\Template')
->setTemplate('Vendor_Module::test.phtml')
->toHtml();
print_r($block);
}
}
/app/code/Vendor/Module/view/frontend/templates/test.phtml
<?= "PHTML file"; ?>
I hope it will helpful for you.