Controller/Action/Helper/ViewRenderer.php
Zend Framework
LICENSE
This source file is subject to the new BSD license that is bundled
with this package in the file LICENSE.txt.
It is also available through the world-wide-web at this URL:
http://framework.zend.com/license/new-bsd
If you did not receive a copy of the license and are unable to
obtain it through the world-wide-web, please send an email
to license@zend.com so we can send you a copy immediately.
- Category
- Zend
- Copyright
- Copyright (c) 2005-2014 Zend Technologies USA Inc. (http://www.zend.com)
- License
- New BSD License
- Package
- Zend_Controller
- Subpackage
- Zend_Controller_Action_Helper
- Version
- $Id$
\Zend_Controller_Action_Helper_ViewRenderer
Package: Zend_Controller\Zend_Controller_Action_HelperView script integration
Zend_Controller_Action_Helper_ViewRenderer provides transparent view
integration for action controllers. It allows you to create a view object
once, and populate it throughout all actions. Several global options may be
set:
- noController: if set true, render() will not look for view scripts in
subdirectories named after the controller
- viewSuffix: what view script filename suffix to use
The helper autoinitializes the action controller view preDispatch(). It
determines the path to the class file, and then determines the view base
directory from there. It also uses the module name as a class prefix for
helpers and views such that if your module name is 'Search', it will set the
helper class prefix to 'Search_View_Helper' and the filter class prefix to ;
'Search_View_Filter'.
Usage:
// In your bootstrap:
Zend_Controller_Action_HelperBroker::addHelper(new Zend_Controller_Action_Helper_ViewRenderer());
// In your action controller methods:
$viewHelper = $this->_helper->getHelper('view');
// Don't use controller subdirectories
$viewHelper->setNoController(true);
// Specify a different script to render:
$this->_helper->viewRenderer('form');
- Parent(s)
- \Zend_Controller_Action_Helper_Abstract
- Copyright
- Copyright (c) 2005-2014 Zend Technologies USA Inc. (http://www.zend.com)
- License
- New BSD License
- Uses
-
Properties
boolean $_neverController = false
Whether or not to autorender using controller name as subdirectory;
global setting (not reset at next invocation)
Default valuefalse
Details- Type
- boolean
boolean $_neverRender = false
Whether or not to autorender postDispatch; global setting (not reset at
next invocation)
Default valuefalse
Details- Type
- boolean
boolean $_noController = false
Whether or not to use a controller name as a subdirectory when rendering
Default valuefalse
Details- Type
- boolean
boolean $_noRender = false
Whether or not to autorender postDispatch; per controller/action setting (reset
at next invocation)
Default valuefalse
Details- Type
- boolean
string|array $_pathDelimiters
Characters representing path delimiters in the controller
Details- Type
- string | array
string $_responseSegment = null
Which named segment of the response to utilize
Default valuenull
Details- Type
- string
string $_scriptAction = null
Which action view script to render
Default valuenull
Details- Type
- string
string $_viewScriptPathNoControllerSpec = ':action.:suffix'
View script path specification string, minus controller segment
Default value':action.:suffix'
Details- Type
- string
string $_viewScriptPathSpec = ':controller/:action.:suffix'
View script path specification string
Default value':controller/:action.:suffix'
Details- Type
- string
Methods
_setModuleDir(string $dir) : void
Set internal module directory representation
ParametersName | Type | Description |
---|
$dir | string | |
---|
_translateSpec(array $vars = array()) : string
Inflect based on provided vars
Allowed variables are:
- :moduleDir - current module directory
- :module - current module name
- :controller - current controller name
- :action - current action name
- :suffix - view script file suffix
ParametersName | Type | Description |
---|
$vars | array | |
---|
Returnsdirect(string $action = null, string $name = null, boolean $noController = null) : void
Use this helper as a method; proxies to setRender()
ParametersName | Type | Description |
---|
$action | string | |
---|
$name | string | |
---|
$noController | boolean | |
---|
getViewScript(string $action = null, array $vars = array()) : string
Get a view script based on an action and/or other variables
Uses values found in current request if no values passed in $vars.
If {@link $_noController} is set, uses {@link $_viewScriptPathNoControllerSpec};
otherwise, uses {@link $_viewScriptPathSpec}.
ParametersName | Type | Description |
---|
$action | string | |
---|
$vars | array | |
---|
ReturnsinitView(string $path = null, string $prefix = null, array $options = array()) : void
Initialize the view object
$options may contain the following keys:
- neverRender - flag dis/enabling postDispatch() autorender (affects all subsequent calls)
- noController - flag indicating whether or not to look for view scripts in subdirectories named after the controller
- noRender - flag indicating whether or not to autorender postDispatch()
- responseSegment - which named response segment to render a view script to
- scriptAction - what action script to render
- viewBasePathSpec - specification to use for determining view base path
- viewScriptPathSpec - specification to use for determining view script paths
- viewScriptPathNoControllerSpec - specification to use for determining view script paths when noController flag is set
- viewSuffix - what view script filename suffix to use
ParametersName | Type | Description |
---|
$path | string | |
---|
$prefix | string | |
---|
$options | array | |
---|
ThrowspostDispatch() : void
postDispatch - auto render a view
Only autorenders if:
- _noRender is false
- action controller is present
- request has not been re-dispatched (i.e., _forward() has not been called)
- response is not a redirect
render(string $action = null, string $name = null, boolean $noController = null) : void
Render a view based on path specifications
Renders a view based on the view script path specifications.
ParametersName | Type | Description |
---|
$action | string | |
---|
$name | string | |
---|
$noController | boolean | |
---|
renderBySpec(string $action = null, array $vars = array(), string $name = null) : void
Render a script based on specification variables
Pass an action, and one or more specification variables (view script suffix)
to determine the view script path, and render that script.
ParametersName | Type | Description |
---|
$action | string | |
---|
$vars | array | |
---|
$name | string | |
---|
renderScript(string $script, string $name = null) : void
Render a view script (optionally to a named response segment)
Sets the noRender flag to true when called.
ParametersName | Type | Description |
---|
$script | string | |
---|
$name | string | |
---|
setNeverController(boolean $flag = true) : \Zend_Controller_Action_Helper_ViewRenderer
Set the neverController flag (i.e., whether or not to render into controller subdirectories)
ParametersName | Type | Description |
---|
$flag | boolean | |
---|
Returns setNoController(boolean $flag = true) : \Zend_Controller_Action_Helper_ViewRenderer
Set the noController flag (i.e., whether or not to render into controller subdirectories)
ParametersName | Type | Description |
---|
$flag | boolean | |
---|
Returns setRender(string $action = null, string $name = null, boolean $noController = null) : \Zend_Controller_Action_Helper_ViewRenderer
Set options for rendering a view script
ParametersName | Type | Description |
---|
$action | string | View script to render |
---|
$name | string | Response named segment to render to |
---|
$noController | boolean | Whether or not to render within a subdirectory named after the controller |
---|
Returns setViewBasePathSpec(string $path) : \Zend_Controller_Action_Helper_ViewRenderer
Set view basePath specification
Specification can contain one or more of the following:
- :moduleDir - current module directory
- :controller - name of current controller in the request
- :action - name of current action in the request
- :module - name of current module in the request
ParametersName | Type | Description |
---|
$path | string | |
---|
ReturnssetViewScriptPathNoControllerSpec(string $path) : \Zend_Controller_Action_Helper_ViewRenderer
Set view script path specification (no controller variant)
Specification can contain one or more of the following:
- :moduleDir - current module directory
- :controller - name of current controller in the request
- :action - name of current action in the request
- :module - name of current module in the request
:controller will likely be ignored in this variant.
ParametersName | Type | Description |
---|
$path | string | |
---|
ReturnssetViewScriptPathSpec(string $path) : \Zend_Controller_Action_Helper_ViewRenderer
Set view script path specification
Specification can contain one or more of the following:
- :moduleDir - current module directory
- :controller - name of current controller in the request
- :action - name of current action in the request
- :module - name of current module in the request
ParametersName | Type | Description |
---|
$path | string | |
---|
Returns