Ver analizador

View Parser puede realizar una simple sustitución de texto para pseudovariables contenidas en sus archivos de visualización. Puede analizar variables simples o pares de etiquetas de variables.

Los nombres de pseudovariables o construcciones de control se escriben entre llaves, así:

<html>
<head>
    <title>{Titulo de Blog}</title>
</head>
<body>
    <h3>{blog_heading}</h3>

    {entradas de blog}
        <h5>{título}</h5>
        <p>{cuerpo}</p>
    {/entradas de blog}

</body>
</html>

Estas variables no son variables PHP reales, sino texto sin formato. representaciones que te permiten eliminar PHP de tus plantillas (archivos de vista).

Nota

Higgs does not require you to use this class since usando PHP puro en sus páginas de visualización (por ejemplo usando el Ver renderizador ) les permite correr un poco más rápido. Sin embargo, algunos desarrolladores prefieren utilizar algún tipo de motor de plantillas si Trabajan con diseñadores que creen que encontrarían algunos confusión al trabajar con PHP.

Usando la clase de analizador de vistas

El método más sencillo para cargar la clase de analizador es a través de su servicio:

<?php

$parser = \Config\Services::parser();

Alternativamente, si no está utilizando la clase Parser como su renderizador predeterminado, puede Puede crear una instancia directamente:

<?php

$parser = new \Higgs\View\Parser();

Luego puedes usar cualquiera de los tres métodos de renderizado estándar que proporciona:

render(), setVar() y setData(). También podrá especificar delimitadores directamente, a través del método setDelimiters().

Importante

Using the Parser, your view templates are processed only by the Parser en sí mismo, y no como un script PHP de vista convencional. Código PHP en dicho script El analizador lo ignora y solo se realizan sustituciones.

Esto tiene un propósito: ver archivos sin PHP.

Que hace

La clase Parser procesa «scripts PHP/HTML» almacenados en la ruta de visualización de la aplicación. Estos scripts no pueden contener PHP.

Cada parámetro de vista (al que nos referimos como pseudovariable) desencadena una sustitución, según el tipo de valor que proporcionó. Las pseudovariables no son extraído en variables PHP; en cambio, se accede a su valor a través de la pseudovariable sintaxis, donde se hace referencia a su nombre entre llaves.

La clase Parser utiliza una matriz asociativa internamente para acumular pseudovariables. configuración hasta que llame a su render(). Esto significa que sus nombres de pseudovariables debe ser único, o una configuración de parámetro posterior anulará una anterior.

Esto también afecta los valores de los parámetros de escape para diferentes contextos dentro de su guion. Tendrá que darle a cada valor de escape un nombre de parámetro único.

Plantillas de analizador

Puede utilizar el método render() para analizar (o renderizar) plantillas simples, como esto:

<?php

$data = [
    'blog_title'   => 'My Blog Title',
    'blog_heading' => 'My Blog Heading',
];

return $parser->setData($data)->render('blog_template');

Los parámetros de vista se pasan a setData() como asociativo conjunto de datos que se reemplazarán en la plantilla. En el ejemplo anterior, el la plantilla contendría dos variables: {blog_title} y {blog_heading} El primer parámetro de render() contiene el nombre de la vista :doc:` archivo</outgoing/views>` , Donde blog_template es el nombre de su archivo de visualización.

Importante

If the file extension is omitted, then the views are expected to end with the .php extension.

Opciones de configuración del analizador

Se pueden pasar varias opciones a los métodos render() o renderString().

  • caché - el tiempo en segundos, para guardar los resultados de una vista; ignorado para renderString()

  • cache_name: la ID utilizada para guardar/recuperar el resultado de una vista en caché; por defecto es la ruta de visualización;

    ignorado para renderString()

  • saveData: verdadero si los parámetros de datos de la vista deben conservarse para llamadas posteriores;

    el valor predeterminado es verdadero

  • cascadeData - verdadero si la configuración de pseudovariables debe pasarse a anidados

    sustituciones; el valor predeterminado es verdadero

<?php

return $parser->render('blog_template', [
    'cache'      => HOUR,
    'cache_name' => 'something_unique',
]);

Variaciones de sustitución

Se admiten tres tipos de sustitución: simple, en bucle y anidada. Las sustituciones se realizan en la misma secuencia en la que se agregaron las pseudovariables.

La sustitución simple realizada por el analizador es uno a uno reemplazo de pseudovariables donde el parámetro de datos correspondiente tiene un valor escalar o de cadena, como en este ejemplo:

<?php

$template = '<head><title>{blog_title}</title></head>';
$data     = ['blog_title' => 'My ramblings'];

return $parser->setData($data)->renderString($template);
// Result: <head><title>My ramblings</title></head>

El Parser lleva la sustitución mucho más allá con «pares de variables», utilizado para sustituciones anidadas o bucles, y con algunas funciones avanzadas construcciones para sustitución condicional.

Cuando se ejecuta el analizador, generalmente

  • manejar cualquier sustitución condicional

  • Manejar cualquier sustituciones anidadas/en bucle.

  • manejar las sustituciones individuales restantes

Sustituciones de bucle

Una sustitución de bucle ocurre cuando el valor de una pseudovariable es una matriz secuencial de matrices, como una matriz de configuraciones de fila.

El código de ejemplo anterior permite reemplazar variables simples. Y si le gustaría que se repitiera un bloque completo de variables, con cada iteración que contiene nuevos valores? Considere el ejemplo de plantilla que mostramos. en la parte superior de la página:

<html>
<head>
    <title>{Titulo de Blog}</title>
</head>
<body>
    <h3>{blog_heading}</h3>

    {entradas de blog}
        <h5>{título}</h5>
        <p>{cuerpo}</p>
    {/entradas de blog}

</body>
</html>

En el código anterior notarás un par de variables: {blog_entries} datos… {/blog_entries}. En un caso como este, toda la porción de datos entre estos pares se repetiría varias veces, correspondiente a el número de filas en el elemento «blog_entries» de la matriz de parámetros.

El análisis de pares de variables se realiza utilizando el código idéntico que se muestra arriba para analizar variables individuales, excepto que agregará una matriz multidimensional correspondiente a sus datos de par de variables. Considere este ejemplo:

<?php

$data = [
    'blog_title'   => 'My Blog Title',
    'blog_heading' => 'My Blog Heading',
    'blog_entries' => [
        ['title' => 'Title 1', 'body' => 'Body 1'],
        ['title' => 'Title 2', 'body' => 'Body 2'],
        ['title' => 'Title 3', 'body' => 'Body 3'],
        ['title' => 'Title 4', 'body' => 'Body 4'],
        ['title' => 'Title 5', 'body' => 'Body 5'],
    ],
];

return $parser->setData($data)->render('blog_template');

El valor de la pseudovariable blog_entries es secuencial. conjunto de conjuntos asociativos. El nivel exterior no tiene claves asociadas. con cada una de las «filas» anidadas.

Si los datos de su «par» provienen de un resultado de base de datos, que ya es un matriz multidimensional, simplemente puede usar la base de datos getResultArray() método:

<?php

$query = $db->query('SELECT * FROM blog');

$data = [
    'blog_title'   => 'My Blog Title',
    'blog_heading' => 'My Blog Heading',
    'blog_entries' => $query->getResultArray(),
];

return $parser->setData($data)->render('blog_template');

Si la matriz que está intentando recorrer contiene objetos en lugar de matrices, el analizador primero buscará un método asArray() en el objeto. Si existiera, se llamará a ese método y la matriz resultante se recorrerá en bucle tal como descrito arriba. Si no existe ningún método asArray(), el objeto se convertirá como una matriz y sus propiedades públicas estarán disponibles para el analizador.

Esto es especialmente útil con las clases Entity, que tienen un método asArray(). que devuelve todas las propiedades públicas y protegidas (menos la propiedad _options) y los pone a disposición del analizador.

Sustituciones anidadas

Una sustitución anidada ocurre cuando el valor de una pseudovariable es una matriz asociativa de valores, como un registro de una base de datos:

<?php

$data = [
    'blog_title'   => 'My Blog Title',
    'blog_heading' => 'My Blog Heading',
    'blog_entries' => [
        [
            'title' => 'Title 1',
            'body'  => 'Body 1',
        ],
    ],
];

return $parser->setData($data)->render('blog_template');

El valor de la pseudovariable blog_entries es asociativo formación. Los pares clave/valor definidos en su interior quedarán expuestos en su interior. el bucle de par de variables para esa variable.

Un blog_template.php que podría funcionar para lo anterior:

<h1>{blog_title} - {blog_heading}</h1>
{entradas de blog}
    <div>
        <h2>{título}</h2>
        <p>{cuerpo}</p>
    </div>
{/entradas de blog}

Si desea que se pueda acceder a las otras pseudovariables dentro de blog_entries alcance, luego asegúrese de que la opción cascadeData esté configurada en verdadero.

Comentarios

Puede colocar comentarios en sus plantillas que serán ignorados y eliminados durante el análisis ajustando el comentarios en símbolos {# #}.

{# Este comentario se elimina durante el análisis. #}
{Entrada de blog}
    <div>
        <h2>{título}</h2>
        <p>{cuerpo}</p>
    </div>
{/Entrada de blog}

Datos en cascada

Tanto con una sustitución anidada como con una de bucle, tiene la opción de realizar cambios en cascada. pares de datos en la sustitución interna.

El siguiente ejemplo no se ve afectado por la cascada:

<?php

$template = '{name} lives in {locations}{city} on {planet}{/locations}.';

$data = [
    'name'      => 'George',
    'locations' => [
        ['city' => 'Red City', 'planet' => 'Mars'],
    ],
];

return $parser->setData($data)->renderString($template);
// Result: George lives in Red City on Mars.

Este ejemplo proporciona resultados diferentes, según la conexión en cascada:

<?php

$template = '{locations}{name} lives in {city} on {planet}{/locations}.';

$data = [
    'name'      => 'George',
    'locations' => [
        ['city' => 'Red City', 'planet' => 'Mars'],
    ],
];

return $parser->setData($data)->renderString($template, ['cascadeData' => false]);
// Result: {name} lives in Red City on Mars.

// or

return $parser->setData($data)->renderString($template, ['cascadeData' => true]);
// Result: George lives in Red City on Mars.

Prevención del análisis

Puede especificar partes de la página que no se analizarán con el par de etiquetas {noparse}````{/noparse}. Cualquier cosa en esto La sección permanecerá exactamente como está, sin sustitución de variables, bucles, etc., que ocurran en el marcado entre corchetes.

{noparse}
    <h1>Código intacto</h1>
{/noparse}

Lógica condicional

La clase Parser admite algunos condicionales básicos para manejar la sintaxis if, else y elseif. Todo si Los bloques deben cerrarse con una etiqueta endif:

{si $rol=='admin'}
    <h1>¡Bienvenido, administrador!</h1>
{terminara si}

Este bloque simple se convierte en lo siguiente durante el análisis:

<?php if ($role === 'admin'): ?>
    <h1>Welcome, Admin!</h1>
<?php endif ?>

Todas las variables utilizadas dentro de las declaraciones if deben haberse configurado previamente con el mismo nombre. Aparte de eso, es Se trata exactamente como un condicional PHP estándar, y todas las reglas PHP estándar se aplicarían aquí. Puedes usar cualquier de los operadores de comparación que usaría normalmente, como ==, ===, !==, <, >, etc.

{si $rol=='admin'}
    <h1>Bienvenido, administrador</h1>
{elseif $rol=='moderador'}
    <h1>Bienvenido, moderador</h1>
{demás}
    <h1>Bienvenido, usuario</h1>
{terminara si}

Advertencia

In the background, conditionals are parsed using an eval(), so you must ensure that you take Tenga cuidado con los datos del usuario que se utilizan dentro de los condicionales, o podría exponer su aplicación a riesgos de seguridad.

Cambiar los delimitadores condicionales

Si tiene código JavaScript como el siguiente en sus plantillas, el analizador genera un error de sintaxis porque hay cadenas que pueden interpretarse como condicional:

<script type="text/javascript">
    var f = función() {
        si (tiene alerta) {
            mensaje de alerta}');
        }
    }
</script>

En ese caso, puedes cambiar los delimitadores de los condicionales con el método setConditionalDelimiters() para evitar malas interpretaciones:

<?php

$parser->setConditionalDelimiters('{%', '%}');

En este caso, escribirás código en tu plantilla:

{% si $rol=='admin' %}
    <h1>Bienvenido, administrador</h1>
{% demás %}
    <h1>Bienvenido, usuario</h1>
{% terminara si %}

Escapar de datos

De forma predeterminada, todas las sustituciones de variables se escapan para ayudar a prevenir ataques XSS en sus páginas. Método esc() de Higgs soporta varios contextos diferentes, como html general, cuando está en un attr HTML, en css, etc. Si nada Si se especifica lo contrario, se asumirá que los datos están en un contexto HTML. Puede especificar el contexto utilizado utilizando esc() filtrar:

{ estilos_usuario | esc(css) }
<a href="{ user_link | esc(attr) }">{ título }</a>

Habrá momentos en los que absolutamente necesitarás algo para usar y NO escapar. Puedes hacer esto agregando una exclamación. marcas en las llaves de apertura y cierre:

{! var_sin escapar!}

Filtros

A cualquier sustitución de una sola variable se le pueden aplicar uno o más filtros para modificar la forma en que se presenta. Estos no pretenden cambiar drásticamente la salida, sino proporcionar formas de reutilizar los mismos datos variables pero con diferentes presentaciones. El filtro esc discutido anteriormente es un ejemplo. Las fechas son otro caso de uso común, en el que podrías Es necesario formatear los mismos datos de forma diferente en varias secciones de la misma página.

Los filtros son comandos que vienen después del nombre de la pseudovariable y están separados por el símbolo de barra vertical, |:

// -55 se muestra como 55
{ valor|abs }

Si el parámetro toma algún argumento, debe estar separado por comas y entre paréntesis:

{creado_en|fecha(Año) }

Se pueden aplicar varios filtros al valor uniendo varios filtros. Se procesan en orden, desde de izquierda a derecha:

{creado_en|fecha_modificar(+5 días)|fecha(Año) }

Filtros proporcionados

Los siguientes filtros están disponibles cuando se utiliza el analizador: ================ ================= ================== ========================================== ======== =============================== Ejemplo de descripción de argumentos de filtro ================ ================= ================== ========================================== ======== =============================== abs Muestra el valor absoluto de un número. {v|abdominales}

capitalizar Muestra la cadena en mayúsculas y minúsculas: todo en minúsculas {v|capitalizar}

con la primera letra en mayúscula.

formato de fecha (Ymd) Una cadena de formato PHP compatible con fecha. {v|fecha(Fecha)}

valor date_modify para agregar Una cadena compatible strtotime para modificar la fecha, { v|date_modify(+1 día) }

/ restar como +5 días o -1 semana.

default valor predeterminado Muestra el valor predeterminado si la variable es empty(). { v|predeterminado (por si acaso) }

esc html, attr, Especifica el contexto para escapar de los datos. {v|esc(atributo)}

css, js

frase de extracto, radio Devuelve el texto dentro de un radio de palabras de un { v|excerpt(gigante verde, 20) } dado

frase. Igual que la función auxiliar extracto.

resaltar frase Resalta una frase determinada dentro del texto usando { v|highlight(view parser) }

“<mark></mark> “etiquetas.

resaltado_código Destaca ejemplos de código con HTML/CSS. {v|código_resaltado}

limit_chars limit Limita el número de caracteres a $limit. { v|limit_chars(100) }

limit_words limit Limita el número de palabras a $limit. { v|límite_palabras(20) }

moneda_moneda local, muestra una versión localizada de una moneda. «moneda» { v|moneda_local(EUR,en_US) }

configuración regional, valor es cualquier código de moneda ISO 4217 de 3 letras. fracción

local_number tipo, precisión, Muestra una versión localizada de un número. «tipo» puede ser { v|local_number(decimal,2,en_US) }
configuración regional uno de: decimal, moneda, porcentaje, científico, deletreado,

ordinal, duración.

lower Convierte una cadena a minúsculas. {v|inferior}

nl2br Reemplaza todos los caracteres de nueva línea (n) a un HTML<br/> etiqueta. {v|nl2br}

number_format coloca Envuelve la función PHP number_format para su uso dentro de { v|number_format(3) }

analizador.

prose Toma un cuerpo de texto y usa auto_typography() { v|prose }

método para convertirla en una prosa más bonita y más fácil de leer.

redondear lugares, escriba Redondea un número a los lugares especificados. Tipos de techo { v|round(3) } { v|round(techo) }

y se puede pasar floor para usar esas funciones en su lugar.

strip_tags caracteres permitidos Envuelve PHP strip_tags. Puede aceptar una cadena de permitidas {v|strip_tags(<br> ) }

etiquetas.

título Muestra una versión «título en mayúsculas y minúsculas» de la cadena, con todo {v|título}

minúsculas y cada palabra en mayúscula.

Upper Muestra la cadena en mayúsculas. {v|superior} ================ ================= ================== ========================================== ======== ===============================

Consulte NumberFormatter de PHP<https://www.php.net/manual/en/numberformatter.create.php> _ para detalles relevantes a la Filtro «número_local».

Filtros personalizados

Puedes crear fácilmente tus propios filtros editando app/Config/View.php y agregando nuevas entradas al Matriz $filtros. Cada clave es el nombre con el que se llama al filtro en la vista, y su valor es cualquier PHP válido. invocable:

<?php

namespace Config;

use Higgs\Config\View as BaseView;

class View extends BaseView
{
    public $filters = [
        'foo'        => '\Some\Class::methodName',
        'str_repeat' => 'str_repeat', // native php function
    ];

    // ...
}

Complementos del analizador

Los complementos le permiten ampliar el analizador y agregar funciones personalizadas para cada proyecto. Pueden ser cualquier PHP invocable, lo que hace son muy simples de implementar. Dentro de las plantillas, los complementos se especifican mediante etiquetas {+ +}:

{+ foo +} contenido interno {+ /foo +}

Este ejemplo muestra un complemento llamado foo. Puede manipular cualquier contenido entre sus etiquetas de apertura y cierre. En este ejemplo, podría funcionar con el texto « contenido interno «. Los complementos se procesan antes que cualquier pseudovariable. suceden los reemplazos.

Si bien los complementos a menudo constan de pares de etiquetas, como se muestra arriba, también pueden ser una sola etiqueta, sin etiqueta de cierre:

{+foo+}

Las etiquetas de apertura también pueden contener parámetros que pueden personalizar el funcionamiento del complemento. Los parámetros se representan como pares clave/valor:

{+ foo bar=2 baz="xy" +}

Los parámetros también pueden ser valores únicos:

{+ incluir algún archivo.php +}

Complementos proporcionados

Los siguientes complementos están disponibles cuando se utiliza el analizador: ================== ========================== ======= ===================================== ============= ==================================================== = Ejemplo de descripción de argumentos de complemento ================== ========================== ======= ===================================== ============= ==================================================== = current_url Alias de la función auxiliar current_url. {+ URL_actual +} URL_anterior Alias de la función auxiliar URL_anterior. {+ URL_anterior +} siteURL Alias de la función auxiliar site_url. {+ URL del sitio «iniciar sesión» +} correo electrónico mailto, título, atributos Alias para la función auxiliar mailto. {+ mailto email=foo@example.com title=»Cosas más extrañas» +} safe_mailto correo electrónico, título, atributos Alias de la función auxiliar safe_mailto. {+ safe_mailto email=foo@example.com title=»Cosas más extrañas» +} cadena de idioma lang Alias para la función auxiliar de idioma. {+ número de idioma.terabyteAbbr +} validation_errors nombre de campo (opcional) Devuelve una cadena de error para el campo {+ validation_errors +}, {+ validation_errors field=»email» +}

(si se especifica) o todos los errores de validación.

ruta nombre de ruta Alias para la función auxiliar route_to. {+ ruta «iniciar sesión» +} csp_script_nonce Alias para el asistente csp_script_nonce {+ csp_script_nonce +}

función.

csp_style_nonce Alias para el asistente csp_style_nonce {+ csp_style_nonce +}

función.

No es necesario utilizar pares de variables para obtener el efecto de iteración en tus vistas. Es posible utilizar un fragmento de vista para lo que habría dentro. un par de variables y, en su lugar, controlar la iteración en su controlador de en la vista.

Un ejemplo con la iteración controlada en la vista:

$plantilla = '<ul> {elementos de menú}
    <li><a href="{link}">{título}</a></li>
{/elementos de menú}</ul> &#39;;

$datos = [
    'elementos de menú' => [
        ['título' => 'Primer enlace', 'enlace' => '/primero'],
        ['título' => 'Segundo enlace', 'enlace' => '/segundo'],
    ]
];

devolver $parser->setData($data)->renderString($template);

Resultado:

<ul>
    <li><a href="/first">Primer enlace</a></li>
    <li><a href="/second">Segundo enlace</a></li>
</ul>

Un ejemplo con la iteración controlada en el controlador, usando un fragmento de vista:

<?php

$temp      = '';
$template1 = '<li><a href="{link}">{title}</a></li>';
$data1     = [
    ['title' => 'First Link', 'link' => '/first'],
    ['title' => 'Second Link', 'link' => '/second'],
];

foreach ($data1 as $menuItem) {
    $temp .= $parser->setData($menuItem)->renderString($template1);
}

$template2 = '<ul>{menuitems}</ul>';
$data      = [
    'menuitems' => $temp,
];

return $parser->setData($data)->renderString($template2);

Resultado:

<ul>
    <li><a href="/first">Primer enlace</a></li>
    <li><a href="/second">Segundo enlace</a></li>
</ul>

Referencia de clase

class Higgs\View\Parser
render($view[, $options[, $saveData]])
Parámetros:
  • $view (string) – nombre de archivo de la fuente de la vista

  • $options (array) – conjunto de opciones, como pares clave/valor

  • $saveData (boolean) – si es verdadero, guardará los datos para usarlos con otras llamadas; si es falso, limpiará los datos después de representar la vista.

Devuelve:

El texto renderizado para la vista elegida

Tipo del valor devuelto:

cadena

Genera la salida basándose en un nombre de archivo y cualquier dato que ya se haya configurado:

<?php

return $parser->render('myview');

Opciones admitidas:

  • cache - el tiempo en segundos, para guardar los resultados de una vista

  • cache_name: la ID utilizada para guardar/recuperar el resultado de una vista en caché; por defecto es la ruta de visualización

  • cascadeData: verdadero si los pares de datos vigentes cuando se produce una sustitución anidada o en bucle deben propagarse

  • saveData: verdadero si el parámetro de visualización de datos debe conservarse para llamadas posteriores

Cualquier sustitución condicional se realiza primero y luego el resto. Se realizan sustituciones para cada par de datos.

renderString($template[, $options[, $saveData]])
Parámetros:
  • $plantilla (string) – Ver fuente proporcionada como una cadena

  • $options (array) – conjunto de opciones, como pares clave/valor

  • $saveData (boolean) – si es verdadero, guardará los datos para usarlos con otras llamadas; si es falso, limpiará los datos después de representar la vista.

Devuelve:

El texto renderizado para la vista elegida

Tipo del valor devuelto:

cadena

Crea la salida basándose en una fuente de plantilla proporcionada y cualquier dato que ya se haya configurado:

<?php

return $parser->renderString('<ul><li>Item 1</li><li>Item 2</li></ul>');

Opciones admitidas y comportamiento como se indica arriba.

setData([$data[, $context = null]])
Parámetros:
  • $data (array) – conjunto de cadenas de datos de vista, como pares clave/valor

  • $context (string) – el contexto que se utilizará para el escape de datos.

Devuelve:

El Renderizador, para encadenamiento de métodos

Tipo del valor devuelto:

Higgs\View\RendererInterface.

Establece varios datos de vista a la vez:

<?php

$parser->setData(['name' => 'George', 'position' => 'Boss']);

Contextos de escape admitidos: html, css, js, url, attr o raw. Si es «crudo», no se producirá ningún escape.

setVar($name[, $value = null[, $context = null]])
Parámetros:
  • $nombre (string) – nombre de la variable de datos de la vista

  • $valor (mixed) – El valor de los datos de esta vista

  • $context (string) – el contexto que se utilizará para el escape de datos.

Devuelve:

El Renderizador, para encadenamiento de métodos

Tipo del valor devuelto:

Higgs\View\RendererInterface.

Establece una sola pieza de datos de vista:

<?php

$parser->setVar('name', 'Joe', 'html');

Contextos de escape admitidos: html, css, js, url, attr o raw. Si es «crudo», no se producirá ningún escape.

setDelimiters($leftDelimiter = '{', $rightDelimiter = '}')
Parámetros:
  • $leftDelimiter (string) – Delimitador izquierdo para campos de sustitución

  • $rightDelimiter (string) – delimitador derecho para campos de sustitución

Devuelve:

El Renderizador, para encadenamiento de métodos

Tipo del valor devuelto:

Higgs\View\RendererInterface.

Anule los delimitadores del campo de sustitución:

<?php

$parser->setDelimiters('[', ']');
setConditionalDelimiters($leftDelimiter = '{', $rightDelimiter = '}')
Parámetros:
  • $leftDelimiter (string) – Delimitador izquierdo para condicionales

  • $rightDelimiter (string) – delimitador derecho para condicionales

Devuelve:

El Renderizador, para encadenamiento de métodos

Tipo del valor devuelto:

Higgs\View\RendererInterface.

Anule los delimitadores condicionales:

<?php

$parser->setConditionalDelimiters('{%', '%}');