Class View
-
ICanBoogie\View\View
implements
ArrayAccess,
JsonSerializable
uses
ICanBoogie\PrototypeTrait (not available)
ICanBoogie\View\ViewBindings
Methods summary
protected
get_controller( void )
: ICanBoogie\Routing\Controller
Returns
ICanBoogie\Routing\Controller
See
$controller
protected
get_variables( void )
: array
Returns
array
See
$variables
protected
get_content( void )
: mixed
Returns
mixed
See
$content
protected
set_content( mixed $content )
protected
lazy_get_template( void )
: string|null
Return the name of the template.
Return the name of the template.
The template name is resolved as follows:
- The
template property of the route.
- The
template property of the controller.
- The
{$controller->name}/{$controller->action}, if the controller has an action
property.
Returns
string|null
protected
lazy_get_layout( void )
: string
Returns the name of the layout.
Returns the name of the layout.
The layout name is resolved as follows:
- The
layout property of the route.
- The
layout property of the controller.
- If the identifier of the route starts with "admin:", "admin" is returned.
- If the route pattern is "/" and a "home" layout template is available, "home" is returned.
- If the "@page" template is available, "page" is returned.
- "default" is returned.
Returns
string
public
__construct( ICanBoogie\Routing\Controller $controller )
An event hook is attached to the action event of the controller for late rendering,
which only happens if the response is null.
An event hook is attached to the action event of the controller for late rendering,
which only happens if the response is null.
Parameters
$controller
- The controller that invoked the view.
public
jsonSerialize( void )
Inheritdoc
Returns an array with the following keys: template, layout, and variables.
Implementation of
JsonSerializable::jsonSerialize()
public
offsetExists( $offset )
Inheritdoc
Implementation of
ArrayAccess::offsetExists()
public
offsetGet( $offset )
Throws
ICanBoogie\OffsetNotDefined
if the offset is not defined.
Inheritdoc
Implementation of
ArrayAccess::offsetGet()
public
offsetSet( $offset, $value )
Inheritdoc
Implementation of
ArrayAccess::offsetSet()
public
offsetUnset( $offset )
Inheritdoc
Implementation of
ArrayAccess::offsetUnset()
public
assign( array $variables )
: ICanBoogie\View\View
Assign multiple variables.
Assign multiple variables.
Parameters
Returns
protected
resolve_template( string $name, string $prefix, array & $tried = [] )
: string|false
Resolve a template pathname from its name and type.
Resolve a template pathname from its name and type.
Parameters
$name
- Name of the template.
$prefix
- Template prefix.
$tried
- Reference to an array where tried paths are collected.
Returns
string|false
public
decorate_with( string $template )
Add a template to decorate the content with.
Add a template to decorate the content with.
Parameters
$template
- Name of the template.
protected
decorate( mixed $content )
: mixed
Decorate the content.
Parameters
$content
- The content to decorate.
Returns
mixed
public
render( void )
: string
Render the view.
Returns
string
protected
render_with_template( mixed $content, string $template, string $type )
: string
Renders the content using a template.
Renders the content using a template.
Parameters
$content
- The content to render.
$template
- Name of the template.
$type
- Type of the template.
Returns
string
protected
prepare_engine_args( mixed $content, string $type )
: array
Prepares engine arguments.
Prepares engine arguments.
Parameters
Returns
array
protected
on_action( ICanBoogie\Routing\Controller\ActionEvent $event )
Renders the view on Controller::action event.
Renders the view on Controller::action event.
Note: The view is not rendered if the event's response is defined, which is the case
when the controller obtained a result after its execution.
Parameters
Constants summary
TEMPLATE_TYPE_VIEW
: integer
1
TEMPLATE_TYPE_LAYOUT
: integer
2
TEMPLATE_TYPE_PARTIAL
: integer
3
TEMPLATE_PREFIX_VIEW
: string
''
TEMPLATE_PREFIX_LAYOUT
: string
'@'
TEMPLATE_PREFIX_PARTIAL
: string
'_'
Properties summary
Magic properties
public
$layout
: string
The name of the layout that should decorate the content.
public
$template
: string
The name of the template that should render the content.
public read-only
$controller
: ICanBoogie\Routing\Controller
The controller invoking the view.
public read-only
$variables
: array
The variables to pass to the template.
public read-only
$layout_resolvers
: callable[]
public read-only
$template_resolvers
: callable[]
$engines,
$template_resolver