phpzend-framework2zend-viewzend-controller

In ZF2 how to make view functions to run in controller


I wanted the functionalities of view files to run in controller file also.

For example, I wanted $this->escapeHtml() which runs in view file alone to run in controller through some means like $this->...->escapeHtml()

Is this possible? Kindly help.


Solution

  • You need to get the ViewHelperManager and extract the EscapeHtml helper. This is a one example how to do it from the controller:

    $viewHelperManager = $this->getServiceLocator()->get('ViewHelperManager');
    $escapeHtml = $viewHelperManager->get('escapeHtml'); // $escapeHtml can be called as function because of its __invoke method       
    $escapedVal = $escapeHtml('string');
    

    Note that it is recommended to escape and display the output in the view scripts and not in the controller.