CodeIgniter v4.6 API

Parser extends View
in package
uses ViewDecoratorTrait

Class for parsing pseudo-vars

Tags
phpstan-type

parser_callable (callable(mixed): mixed)

phpstan-type

parser_callable_string (callable(mixed): mixed)&string

see
ParserTest

Table of Contents

Properties

$leftDelimiter  : string
Left delimiter character for pseudo vars
$rightDelimiter  : string
Right delimiter character for pseudo vars
$config  : View
$data  : array<string, mixed>
Saved Data.
$dataContexts  : array<string, mixed>
Stores the context for each data element when set by `setData` so the context is respected.
$debug  : bool
Should we store performance info?
$layout  : string|null
The name of the layout being used, if any.
$leftConditionalDelimiter  : string
Left delimiter characters for conditionals
$loader  : FileLocatorInterface
Instance of FileLocator for when we need to attempt to find a view that's not in standard place.
$logger  : LoggerInterface
Logger instance.
$noparseBlocks  : array<int, string>
Stores extracted noparse blocks.
$performanceData  : array<int, array{start: float, end: float, view: string}>
Cache stats about our performance here, when CI_DEBUG = true
$plugins  : array<string, callable|array<int, string>|string>
Stores any plugins registered at run-time.
$renderVars  : array<string, mixed>
Data for rendering including Caching and Debug Toolbar data.
$rightConditionalDelimiter  : string
Right delimiter characters for conditionals
$saveData  : bool
Whether data should be saved between renders.
$sections  : array<string, array<int, string>>
Holds the sections and their data.
$sectionStack  : array<int, string>
The name of the current section being rendered, if any.
$tempData  : array<string, mixed>|null
Data for the variables that are available in the Views.
$viewPath  : string
The base directory to look in for our Views.
$viewsCount  : int
Number of loaded views

Methods

__construct()  : mixed
Constructor
addPlugin()  : $this
Makes a new plugin available during the parsing of the template.
endSection()  : void
Captures the last section
excerpt()  : string
Extract first bit of a long string and add ellipsis
extend()  : void
Specifies that the current view should extend an existing layout.
getData()  : array<string, mixed>
Returns the current data that will be displayed in the view.
getPerformanceData()  : array<int, array{start: float, end: float, view: string}>
Returns the performance data that might have been collected during the execution. Used primarily in the Debug Toolbar.
include()  : string
Used within layout views to include additional views.
insertNoparse()  : string
Re-inserts the noparsed contents back into the template.
removePlugin()  : $this
Removes a plugin from the available plugins.
render()  : string
Parse a template
renderSection()  : string
Renders a section's contents.
renderString()  : string
Parse a String
resetData()  : RendererInterface
Removes all of the view data from the system.
section()  : void
Starts holds content for a section within the layout.
setConditionalDelimiters()  : RendererInterface
Over-ride the substitution conditional delimiters.
setData()  : RendererInterface
Sets several pieces of view data at once.
setDelimiters()  : RendererInterface
Over-ride the substitution field delimiters.
setVar()  : RendererInterface
Sets a single piece of view data.
shouldAddEscaping()  : false|string
Checks the placeholder the view provided to see if we need to provide any autoescaping.
applyFilters()  : string
Given a set of filters, will apply each of the filters in turn to $replace, and return the modified string.
decorateOutput()  : string
Runs the generated output through any declared view decorators.
extractNoparse()  : string
Extracts noparse blocks, inserting a hash in its place so that those blocks of the page are not touched by parsing.
logPerformance()  : void
Logs performance data for rendering a view.
objectToArray()  : array<string, mixed>|bool|float|int|string|null
Converts an object to an array, respecting any toArray() methods on an object.
parse()  : string
Parse a template
parseComments()  : string
Removes any comments from the file. Comments are wrapped in {# #} symbols:
parseConditionals()  : string
Parses any conditionals in the code, removing blocks that don't pass so we don't try to parse it later.
parsePair()  : array<string, string>
Parse a tag pair
parsePlugins()  : string
Scans the template for any parser plugins, and attempts to execute them.
parseSingle()  : array<string, string>
Parse a single key/value, extracting it
prepareReplacement()  : string
Callback used during parse() to apply any filters to the value.
prepareTemplateData()  : void
replaceSingle()  : string
Handles replacing a pseudo-variable with the actual content. Will double-check for escaping brackets.

Properties

$leftDelimiter

Left delimiter character for pseudo vars

public string $leftDelimiter = '{'

$rightDelimiter

Right delimiter character for pseudo vars

public string $rightDelimiter = '}'

$config

protected View $config

$data

Saved Data.

protected array<string, mixed> $data = []

$dataContexts

Stores the context for each data element when set by `setData` so the context is respected.

protected array<string, mixed> $dataContexts = []

$debug

Should we store performance info?

protected bool $debug = false

$layout

The name of the layout being used, if any.

protected string|null $layout

Set by the extend method used within views.

$leftConditionalDelimiter

Left delimiter characters for conditionals

protected string $leftConditionalDelimiter = '{'

$loader

Instance of FileLocator for when we need to attempt to find a view that's not in standard place.

protected FileLocatorInterface $loader

$logger

Logger instance.

protected LoggerInterface $logger

$noparseBlocks

Stores extracted noparse blocks.

protected array<int, string> $noparseBlocks = []

$performanceData

Cache stats about our performance here, when CI_DEBUG = true

protected array<int, array{start: float, end: float, view: string}> $performanceData = []

$plugins

Stores any plugins registered at run-time.

protected array<string, callable|array<int, string>|string> $plugins = []
Tags
phpstan-var

array<string, array<parser_callable_string>|parser_callable_string|parser_callable>

$renderVars

Data for rendering including Caching and Debug Toolbar data.

protected array<string, mixed> $renderVars = []

$rightConditionalDelimiter

Right delimiter characters for conditionals

protected string $rightConditionalDelimiter = '}'

$saveData

Whether data should be saved between renders.

protected bool $saveData

$sections

Holds the sections and their data.

protected array<string, array<int, string>> $sections = []

$sectionStack

The name of the current section being rendered, if any.

protected array<int, string> $sectionStack = []

$tempData

Data for the variables that are available in the Views.

protected array<string, mixed>|null $tempData

$viewPath

The base directory to look in for our Views.

protected string $viewPath

$viewsCount

Number of loaded views

protected int $viewsCount = 0

Methods

__construct()

Constructor

public __construct(View $config[, string|null $viewPath = null ][, FileLocatorInterface|null $loader = null ][, bool|null $debug = null ][, LoggerInterface|null $logger = null ]) : mixed
Parameters
$config : View
$viewPath : string|null = null
$loader : FileLocatorInterface|null = null
$debug : bool|null = null
$logger : LoggerInterface|null = null

addPlugin()

Makes a new plugin available during the parsing of the template.

public addPlugin(string $alias, callable $callback[, bool $isPair = false ]) : $this
Parameters
$alias : string
$callback : callable
$isPair : bool = false
Return values
$this

excerpt()

Extract first bit of a long string and add ellipsis

public excerpt(string $string[, int $length = 20 ]) : string
Parameters
$string : string
$length : int = 20
Return values
string

extend()

Specifies that the current view should extend an existing layout.

public extend(string $layout) : void
Parameters
$layout : string

getData()

Returns the current data that will be displayed in the view.

public getData() : array<string, mixed>
Return values
array<string, mixed>

getPerformanceData()

Returns the performance data that might have been collected during the execution. Used primarily in the Debug Toolbar.

public getPerformanceData() : array<int, array{start: float, end: float, view: string}>
Return values
array<int, array{start: float, end: float, view: string}>

include()

Used within layout views to include additional views.

public include(string $view[, array<string, mixed>|null $options = null ][, bool $saveData = true ]) : string
Parameters
$view : string
$options : array<string, mixed>|null = null
$saveData : bool = true
Return values
string

insertNoparse()

Re-inserts the noparsed contents back into the template.

public insertNoparse(string $template) : string
Parameters
$template : string
Return values
string

removePlugin()

Removes a plugin from the available plugins.

public removePlugin(string $alias) : $this
Parameters
$alias : string
Return values
$this

render()

Parse a template

public render(string $view[, array<string, mixed>|null $options = null ][, bool|null $saveData = null ]) : string

Parses pseudo-variables contained in the specified template view, replacing them with any data that has already been set.

Parameters
$view : string

File name of the view source

$options : array<string, mixed>|null = null

Reserved for 3rd-party uses since it might be needed to pass additional info to other template engines.

$saveData : bool|null = null

If true, saves data for subsequent calls, if false, cleans the data after displaying, if null, uses the config setting.

Return values
string

renderSection()

Renders a section's contents.

public renderSection(string $sectionName[, bool $saveData = false ]) : string
Parameters
$sectionName : string
$saveData : bool = false

If true, saves data for subsequent calls, if false, cleans the data after displaying.

Return values
string

renderString()

Parse a String

public renderString(string $template[, array<string, mixed>|null $options = null ][, bool|null $saveData = null ]) : string

Parses pseudo-variables contained in the specified string, replacing them with any data that has already been set.

Parameters
$template : string
$options : array<string, mixed>|null = null

Reserved for 3rd-party uses since it might be needed to pass additional info to other template engines.

$saveData : bool|null = null

If true, saves data for subsequent calls, if false, cleans the data after displaying, if null, uses the config setting.

Return values
string

section()

Starts holds content for a section within the layout.

public section(string $name) : void
Parameters
$name : string

Section name

setConditionalDelimiters()

Over-ride the substitution conditional delimiters.

public setConditionalDelimiters([string $leftDelimiter = '{' ][, string $rightDelimiter = '}' ]) : RendererInterface
Parameters
$leftDelimiter : string = '{'
$rightDelimiter : string = '}'
Return values
RendererInterface

setData()

Sets several pieces of view data at once.

public setData([array<string, mixed> $data = [] ][, "attr"|"css"|"html"|"js"|"raw"|"url"|null $context = null ]) : RendererInterface

In the Parser, we need to store the context here so that the variable is correctly handled within the parsing itself, and contexts (including raw) are respected.

Parameters
$data : array<string, mixed> = []
$context : "attr"|"css"|"html"|"js"|"raw"|"url"|null = null

The context to escape it for. If 'raw', no escaping will happen.

Return values
RendererInterface

setDelimiters()

Over-ride the substitution field delimiters.

public setDelimiters([string $leftDelimiter = '{' ][, string $rightDelimiter = '}' ]) : RendererInterface
Parameters
$leftDelimiter : string = '{'
$rightDelimiter : string = '}'
Return values
RendererInterface

setVar()

Sets a single piece of view data.

public setVar(string $name[, mixed $value = null ][, "attr"|"css"|"html"|"js"|"raw"|"url"|null $context = null ]) : RendererInterface
Parameters
$name : string
$value : mixed = null
$context : "attr"|"css"|"html"|"js"|"raw"|"url"|null = null

The context to escape it for. If 'raw', no escaping will happen.

Return values
RendererInterface

shouldAddEscaping()

Checks the placeholder the view provided to see if we need to provide any autoescaping.

public shouldAddEscaping(string $key) : false|string
Parameters
$key : string
Return values
false|string

applyFilters()

Given a set of filters, will apply each of the filters in turn to $replace, and return the modified string.

protected applyFilters(string $replace, array<int, string> $filters) : string
Parameters
$replace : string
$filters : array<int, string>
Return values
string

decorateOutput()

Runs the generated output through any declared view decorators.

protected decorateOutput(string $html) : string
Parameters
$html : string
Return values
string

extractNoparse()

Extracts noparse blocks, inserting a hash in its place so that those blocks of the page are not touched by parsing.

protected extractNoparse(string $template) : string
Parameters
$template : string
Return values
string

logPerformance()

Logs performance data for rendering a view.

protected logPerformance(float $start, float $end, string $view) : void
Parameters
$start : float
$end : float
$view : string

objectToArray()

Converts an object to an array, respecting any toArray() methods on an object.

protected objectToArray(array<string, mixed>|bool|float|int|object|string|null $value) : array<string, mixed>|bool|float|int|string|null
Parameters
$value : array<string, mixed>|bool|float|int|object|string|null
Return values
array<string, mixed>|bool|float|int|string|null

parse()

Parse a template

protected parse(string $template[, array<string, mixed> $data = [] ][, array<string, mixed> $options = null ]) : string

Parses pseudo-variables contained in the specified template, replacing them with the data in the second param

Parameters
$template : string
$data : array<string, mixed> = []
$options : array<string, mixed> = null

Future options

Return values
string

parseComments()

Removes any comments from the file. Comments are wrapped in {# #} symbols:

protected parseComments(string $template) : string

{# This is a comment #}

Parameters
$template : string
Return values
string

parseConditionals()

Parses any conditionals in the code, removing blocks that don't pass so we don't try to parse it later.

protected parseConditionals(string $template) : string

Valid conditionals:

  • if
  • elseif
  • else
Parameters
$template : string
Return values
string

parsePair()

Parse a tag pair

protected parsePair(string $variable, array<string, mixed> $data, string $template) : array<string, string>

Parses tag pairs: {some_tag} string... {/some_tag}

Parameters
$variable : string
$data : array<string, mixed>
$template : string
Return values
array<string, string>

parsePlugins()

Scans the template for any parser plugins, and attempts to execute them.

protected parsePlugins(string $template) : string

Plugins are delimited by {+ ... +}

Parameters
$template : string
Return values
string

parseSingle()

Parse a single key/value, extracting it

protected parseSingle(string $key, string $val) : array<string, string>
Parameters
$key : string
$val : string
Return values
array<string, string>

prepareReplacement()

Callback used during parse() to apply any filters to the value.

protected prepareReplacement(array<int, string> $matches, string $replace[, bool $escape = true ]) : string
Parameters
$matches : array<int, string>
$replace : string
$escape : bool = true
Return values
string

prepareTemplateData()

protected prepareTemplateData(bool $saveData) : void
Parameters
$saveData : bool

replaceSingle()

Handles replacing a pseudo-variable with the actual content. Will double-check for escaping brackets.

protected replaceSingle(array<string|int, mixed>|string $pattern, string $content, string $template[, bool $escape = false ]) : string
Parameters
$pattern : array<string|int, mixed>|string
$content : string
$template : string
$escape : bool = false
Return values
string

        
On this page

Search results