Парсер представлений
- Использование класса View Parser
- Варианты подстановки
- Примечания по использованию
- Справочник по классу
Парсер представлений может выполнять простую подстановку текста для псевдопеременных, содержащихся в ваших файлах представлений. Он может анализировать простые переменные или пары тегов переменных.
Псевдопеременные или управляющие конструкции заключены в фигурные скобки, например:
<html>
<head>
<title>{blog_title}</title>
</head>
<body>
<h3>{blog_heading}</h3>
{blog_entries}
<h5>{title}</h5>
<p>{body}</p>
{/blog_entries}
</body>
</html>
Эти переменные не являются фактическими переменными PHP, а скорее простыми текстовыми представлениями, которые позволяют вам исключить PHP из ваших шаблонов (файлов представлений).
Примечание
CodeIgniter не требует использования этого класса, так как использование чистого PHP в ваших страницах представлений (например, с помощью рендерера представлений) позволяет им работать немного быстрее. Однако некоторые разработчики предпочитают использовать какой-либо вид движка шаблонов, если они работают с дизайнерами, которые, по их мнению, столкнутся с некоторыми трудностями при работе с PHP.
Использование класса View Parser
Самый простой способ загрузить класс парсера — через его сервис:
$parser = \Config\Services::parser();
В качестве альтернативы, если вы не используете класс Parser в качестве вашего рендерера по умолчанию, вы можете создать его напрямую:
$parser = new \CodeIgniter\View\Parser();
Затем вы можете использовать любой из трех стандартных методов рендеринга, которые он предоставляет: render(viewpath, options, save), setVar(name, value, context) и setData(data, context). Вы также сможете указать разделители напрямую с помощью метода setDelimiters(left,right).
Используя Parser, ваши шаблоны представлений обрабатываются только самим парсером, а не как обычный PHP-скрипт представления. PHP-код в таком скрипте игнорируется парсером, и выполняются только подстановки.
Это сделано намеренно: файлы представлений без PHP.
Что он делает
Класс Parser обрабатывает «PHP/HTML-скрипты», хранящиеся в пути к представлению приложения. Эти скрипты не могут содержать PHP.
Каждый параметр представления (который мы называем псевдопеременной) инициирует подстановку, основанную на типе значения, которое вы для него предоставили. Псевдопеременные не извлекаются в PHP-переменные; вместо этого к их значению обращаются через синтаксис псевдопеременной, где имя ссылается внутри фигурных скобок.
Класс Parser внутренне использует ассоциативный массив для накопления настроек псевдопеременных, пока вы не вызовете его render() . Это означает, что имена ваших псевдопеременных должны быть уникальными, или более позднее задание параметра перекроет более раннее.
Это также влияет на экранирование значений параметров для различных контекстов внутри вашего скрипта. Вам придется присваивать каждому экранированному значению уникальное имя параметра.
Шаблоны парсера
Вы можете использовать метод render() для анализа (или рендеринга) простых шаблонов, например:
$data = [
'blog_title' => 'My Blog Title',
'blog_heading' => 'My Blog Heading',
];
echo $parser->setData($data)
->render('blog_template');
Параметры представлений передаются setData() в виде ассоциативного массива данных для замены в шаблоне. В приведенном выше примере шаблон будет содержать две переменные: {blog_title} и {blog_heading}. Первый параметр render() содержит имя файла файла представления, где blog_template — имя вашего файла представления.
Важно
Если расширение файла опущено, то представления ожидаются с расширением .php.
Параметры конфигурации парсера
Несколько параметров можно передать методам render() или renderString().
-
cache— время в секундах для сохранения результатов представления; игнорируется для renderString() -
cache_name— идентификатор, используемый для сохранения/извлечения результата кэшированного представления; по умолчанию совпадает с viewpath; игнорируется для renderString() -
saveData— true, если параметры данных представления должны сохраняться для последующих вызовов; значение по умолчанию — false -
cascadeData— true, если настройки псевдопеременных должны передаваться вложенным подстановкам; значение по умолчанию — true
echo $parser->render('blog_template', [
'cache' => HOUR,
'cache_name' => 'something_unique',
]);
Варианты подстановки
Поддерживаются три типа подстановок: простые, циклические и вложенные. Подстановки выполняются в том же порядке, в котором добавлялись псевдопеременные.
Простая подстановка, выполняемая парсером, представляет собой взаимную замену псевдопеременных, где соответствующий параметр данных имеет скалярное или строковое значение, как в этом примере:
$template = '<head><title>{blog_title}</title></head>';
$data = ['blog_title' => 'My ramblings'];
echo $parser->setData($data)->renderString($template);
// Result: <head><title>My ramblings</title></head>
Parser расширяет подстановку до «пар переменных», используемых для вложенных подстановок или циклов, а также с некоторыми расширенными конструкциями для условных подстановок.
При выполнении парсера он, как правило,
- обрабатывает все условные подстановки
- обрабатывает все вложенные/циклические подстановки
- обрабатывает оставшиеся простые подстановки
Подстановки циклов
Циклическая подстановка происходит, когда значение псевдопеременной представляет собой последовательный массив массивов, например, массив строк настроек.
Приведенный выше пример кода позволяет подставлять простые переменные. А что, если вы хотите повторить целый блок переменных, при каждом повторении содержащий новые значения? Рассмотрим пример шаблона, который мы показали вверху страницы:
<html>
<head>
<title>{blog_title}</title>
</head>
<body>
<h3>{blog_heading}</h3>
{blog_entries}
<h5>{title}</h5>
<p>{body}</p>
{/blog_entries}
</body>
</html>
В приведенном коде вы заметите пару переменных: {blog_entries} данные… {/blog_entries}. В таком случае весь фрагмент данных между этими парами будет повторяться несколько раз, соответствуя числу строк в элементе «blog_entries» массива параметров.
Анализ пар переменных выполняется с помощью идентичного кода, показанного выше для анализа отдельных переменных, за исключением того, что вы добавите многомерный массив, соответствующий данным вашей пары переменных. Рассмотрим этот пример:
$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'],
],
];
echo $parser->setData($data)
->render('blog_template');
Значение для псевдопеременной blog_entries представляет собой последовательный массив ассоциативных массивов. Внешний уровень не имеет ключей, связанных с каждым из вложенных «строк».
Если данные «пары» поступают из результата базы данных, который уже является многомерным массивом, вы можете просто использовать метод базы данных getResultArray():
$query = $db->query("SELECT * FROM blog");
$data = [
'blog_title' => 'My Blog Title',
'blog_heading' => 'My Blog Heading',
'blog_entries' => $query->getResultArray(),
];
echo $parser->setData($data)
->render('blog_template');
Если массив, по которому вы пытаетесь итерироваться, содержит объекты вместо массивов, парсер сначала проверит наличие метода asArray в объекте. Если он существует, этот метод будет вызван, а полученный массив будет проитерирован так же, как описано выше. Если метод asArray не существует, объект будет преобразован в массив, и его публичные свойства станут доступны парсеру.
Это особенно полезно с классами сущностей, которые имеют метод asArray, возвращающий все публичные и защищённые свойства (кроме свойства _options) и делающий их доступными для парсера.
Вложенные подстановки
Вложенная подстановка происходит, когда значение псевдопеременной представляет собой ассоциативный массив значений, например, запись из базы данных:
$data = [
'blog_title' => 'My Blog Title',
'blog_heading' => 'My Blog Heading',
'blog_entry' => [
'title' => 'Title 1',
'body' => 'Body 1',
],
];
echo $parser->setData($data)
->render('blog_template');
Значение для псевдопеременной blog_entry представляет собой ассоциативный массив. Пари ключей/значений, определённые внутри него, будут доступны внутри цикла пар переменных для этой переменной.
blog_template , который может подойти для вышеуказанного:
<h1>{blog_title} - {blog_heading}</h1>
{blog_entry}
<div>
<h2>{title}</h2>
<p>{body}</p>
</div>
{/blog_entry}
Если вы хотите, чтобы другие псевдопеременные были доступны внутри области «blog_entry», убедитесь, что параметр «cascadeData» установлен в значение true.
Комментарии
Вы можете разместить комментарии в своих шаблонах, которые будут проигнорированы и удалены во время анализа, обернув комментарии в {# #} символы.
{# This comment is removed during parsing. #}
{blog_entry}
<div>
<h2>{title}</h2>
<p>{body}</p>
</div>
{/blog_entry}
Каскадирование данных
При вложенных и циклических подстановках у вас есть возможность каскадирования пар данных во внутреннюю подстановку.
Следующий пример не затронут каскадированием:
$template = '{name} lives in {location}{city} on {planet}{/location}.';
$data = [
'name' => 'George',
'location' => ['city' => 'Red City', 'planet' => 'Mars'],
];
echo $parser->setData($data)->renderString($template);
// Result: George lives in Red City on Mars.
Этот пример даёт разные результаты, в зависимости от каскадирования:
$template = '{location}{name} lives in {city} on {planet}{/location}.';
$data = [
'name' => 'George',
'location' => ['city' => 'Red City', 'planet' => 'Mars'],
];
echo $parser->setData($data)->renderString($template, ['cascadeData'=>false]);
// Result: {name} lives in Red City on Mars.
echo $parser->setData($data)->renderString($template, ['cascadeData'=>true]);
// Result: George lives in Red City on Mars.
Предотвращение парсинга
Вы можете указать части страницы, которые не должны быть обработаны парсером, с помощью пары тегов {noparse}{/noparse} . Всё, что находится в этом блоке, останется точно таким же, без подстановки переменных, циклов и т. д., которые могут происходить с разметкой внутри скобок.
{noparse}
<h1>Untouched Code</h1>
{/noparse}
Условные операторы
Класс Parser поддерживает некоторые базовые условные операторы для обработки if, else, и elseif синтаксиса. Все блоки if должны быть закрыты тегом endif:
{if $role=='admin'}
<h1>Welcome, Admin!</h1>
{endif}
Этот простой блок преобразуется при анализе в следующее:
<?php if ($role=='admin'): ?>
<h1>Welcome, Admin!</h1>
<?php endif ?>
Все переменные, используемые в операторах if, должны быть предварительно заданы с тем же именем. В остальном он обрабатывается точно так же, как стандартный PHP-условный оператор, и здесь применяются все стандартные правила PHP. Вы можете использовать любой из операторов сравнения, которые вы обычно используете, такие как ==, ===, !==, <, > и т. д.
{if $role=='admin'}
<h1>Welcome, Admin</h1>
{elseif $role=='moderator'}
<h1>Welcome, Moderator</h1>
{else}
<h1>Welcome, User</h1>
{endif}
Примечание
На заднем плане условные операторы анализируются с помощью eval(), поэтому вы должны позаботиться о данных пользователя, используемых в условных операторах, или вы можете подвергнуть свою систему рискам безопасности.
Экранирование данных
По умолчанию, все подстановки переменных экранируются, чтобы предотвратить атаки XSS на ваших страницах. Метод esc CodeIgniter поддерживает несколько контекстов, таких как общий html, когда он находится в HTML attr, в css и т. д. Если ничего не указано, данные будут считаться находящимися в HTML-контексте. Вы можете указать используемый контекст, используя фильтр esc:
{ user_styles | esc(css) }
<a href="{ user_link | esc(attr) }">{ title }</a>
Иногда вам необходимо использовать значение без экранирования. Вы можете сделать это, добавив восклицательные знаки к открывающей и закрывающей фигурным скобкам:
{! unescaped_var !}
Фильтры
Любая подстановка переменной может иметь один или несколько фильтров, применяемых к ней для изменения способа ее представления. Они не предназначены для радикального изменения вывода, а предоставляют способы повторного использования тех же данных переменной с различными представлениями. Фильтр esc, о котором говорилось выше, является одним примером. Даты — еще один распространенный случай использования, когда вам может потребоваться отформатировать одни и те же данные по-разному в нескольких разделах на одной странице.
Фильтры — это команды, которые следуют за именем псевдопеременной и отделяются символом «|» (pipe):
| Если параметр принимает какие-либо аргументы, они должны быть разделены запятыми и заключены в скобки:
{ created_at|date(Y-m-d) }
Несколько фильтров могут быть применены к значению, соединив их символом «|». Они обрабатываются в порядке следования слева направо:
{ created_at|date_modify(+5 days)|date(Y-m-d) }
Доступные фильтры
Следующие фильтры доступны при использовании парсера:
| Фильтр | Аргументы | Описание | Пример |
| abs | Отображает абсолютное значение числа. | { v|abs } | |
| capitalize | Отображает строку в стиле заголовка: все строчные буквы с заглавной первой буквой. | { v|capitalize} | |
| date | формат (Y-m-d) | Строка форматирования, совместимая с PHP date. | { v|date(Y-m-d) } |
| date_modify | значение для добавления/вычитания | Строка, совместимая с strtotime, для изменения даты, например, +5 day или -1 week. | { v|date_modify(+1 day) } |
| default | значение по умолчанию | Отображает значение по умолчанию, если переменная пуста или не определена. | { v|default(на всякий случай) } |
| esc | html, attr, css, js | Указывает контекст для экранирования данных. | { v|esc(attr) } |
| excerpt | фраза, радиус | Возвращает текст в радиусе слов от заданной фразы. Аналогично функции-помощнику excerpt. | { v|excerpt(зеленый гигант, 20) } |
| highlight | фраза | Выделяет заданную фразу в тексте тегами ‘<mark></mark>’. | { v|highlight(парсер представлений) } |
| highlight_code | Выделяет образцы кода с помощью тегов HTML/CSS. | { v|highlight_code } | |
| limit_chars | предел | Ограничивает количество символов до $limit. | { v|limit_chars(100) } |
| limit_words | предел | Ограничивает количество слов до $limit. | { v|limit_words(20) } |
| local_currency | валюта, регион | Отображает локализованный вариант валюты. Значение «валюта» — любой трехбуквенный код валюты ISO 4217. | { v|local_currency(EUR,en_US) } |
| local_number | тип, точность, регион | Отображает локализованный вариант числа. «Тип» может быть одним из следующих: десятичный, валютный, процентный, научный, прописью, порядковый, длительность. | { v|local_number(decimal,2,en_US) } |
| lower | Преобразует строку в нижний регистр. | { v|lower } | |
| nl2br | Заменяет все символы новой строки (n) на тег HTML <br/>. | { v|nl2br } | |
| number_format | разряды | Оборачивает функцию PHP number_format для использования в парсере. | { v|number_format(3) } |
| prose | Принимает текст и использует метод auto_typography(), чтобы сделать его более красивым и понятным. | { v|prose } | |
| round | разряды, тип | Округляет число до заданного количества разрядов. Можно передать типы ceil и floor, чтобы использовать эти функции вместо. | { v|round(3) } { v|round(ceil) } |
| strip_tags | разрешенные символы | Оборачивает PHP strip_tags. Может принимать строку разрешенных тегов. | { v|strip_tags(<br>) } |
| title | Отображает строку в формате «заголовок», со всеми строчными буквами и заглавными первыми буквами каждого слова. | { v|title } | |
| upper | Отображает строку в верхнем регистре. | { v|upper } | |
См. PHP NumberFormatter для получения подробной информации, относящейся к фильтру «local_number».
Пользовательские фильтры
Вы можете легко создавать свои собственные фильтры, отредактировав app/Config/View.php и добавив новые записи в массив $filters. Каждый ключ — это имя фильтра, вызываемого в представлении, а его значение — любой допустимый PHP вызываемый объект:
public $filters = [
'abs' => '\CodeIgniter\View\Filters::abs',
'capitalize' => '\CodeIgniter\View\Filters::capitalize',
];
Встроенные функции PHP в качестве фильтров
Вы можете использовать встроенные функции PHP в качестве фильтров, отредактировав app/Config/View.php и добавив новые записи в массив $filters. Каждый ключ — это имя встроенной функции PHP, вызываемой в представлении, а его значение — любая допустимая встроенная функция PHP, которая предваряется:
public $filters = [
'str_repeat' => '\str_repeat',
];
Плагины парсера
Плагины позволяют расширять парсер, добавляя настраиваемые функции для каждого проекта. Они могут быть любыми вызываемыми объектами PHP, что делает их очень простыми в реализации. В шаблонах плагины указываются тегами {+ +}:
{+ foo +} inner content {+ /foo +}
Этот пример показывает плагин под названием foo. Он может изменять любой текст между открывающим и закрывающим тегами. В данном примере он может работать с текстом «внутреннее содержимое». Плагины обрабатываются до замены любых псевдопеременных.
Хотя плагины часто состоят из пар тегов, как показано выше, они также могут быть одним тегом без закрывающего тега:
{+ foo +}
Открывающие теги также могут содержать параметры, которые могут настроить работу плагина. Параметры представлены в виде пар ключ/значение:
{+ foo bar=2 baz="x y" }
Параметры также могут быть одиночными значениями:
{+ include somefile.php +}
Доступные плагины
Следующие плагины доступны при использовании парсера:
| Плагин | Аргументы | Описание | Пример |
|---|---|---|---|
| current_url | Псевдоним для функции-помощника current_url. | {+ current_url +} | |
| previous_url | Псевдоним для функции-помощника previous_url. | {+ previous_url +} | |
| siteURL | Псевдоним для функции-помощника site_url. | {+ siteURL “login” +} | |
| mailto | email, title, attributes | Псевдоним для функции-помощника mailto. | {+ mailto email=foo@example.com title=”Stranger Things” +} |
| safe_mailto | email, title, attributes | Псевдоним для функции-помощника safe_mailto. | {+ safe_mailto email=foo@example.com title=”Stranger Things” +} |
| lang | строка языка | Псевдоним для функции-помощника lang. | {+ lang number.terabyteAbbr +} |
| validation_errors | имя поля (необязательно) | Возвращает либо строку ошибки для поля (если указано), либо все ошибки валидации. | {+ validation_errors +} , {+ validation_errors field=”email” +} |
| route | имя маршрута | Псевдоним для функции-помощника route_to. | {+ route “login” +} |
Регистрация плагина
В самом простом варианте, для регистрации нового плагина и его готовности к использованию достаточно добавить его в app/Config/View.php в массив $plugins. Ключ — это имя плагина, используемое в файле шаблона. Значение — любой допустимый вызываемый объект PHP, включая статические методы класса и замыкания:
public $plugins = [
'foo' => '\Some\Class::methodName',
'bar' => function ($str, array $params=[]) {
return $str;
},
];
Любые замыкания, которые используются, должны быть определены в конструкторе файла конфигурации:
class View extends \CodeIgniter\Config\View
{
public $plugins = [];
public function __construct()
{
$this->plugins['bar'] = function (array $params=[]) {
return $params[0] ?? '';
};
parent::__construct();
}
}
Если вызываемый объект находится сам по себе, он обрабатывается как один тег, а не пара открытие/закрытие. Он будет заменен возвращаемым значением плагина:
public $plugins = [
'foo' => '\Some\Class::methodName'
];
// Tag is replaced by the return value of Some\Class::methodName static function.
{+ foo +}
Если вызываемый объект заключен в массив, он обрабатывается как пара тегов открытие/закрытие, которая может работать с любым содержимым между ними:
public $plugins = [
'foo' => ['\Some\Class::methodName']
];
{+ foo +} inner content {+ /foo +}
Примечания по использованию
Если вы включите параметры подстановки, которые не упоминаются в вашем шаблоне, они игнорируются:
$template = 'Hello, {firstname} {lastname}';
$data = [
'title' => 'Mr',
'firstname' => 'John',
'lastname' => 'Doe'
];
echo $parser->setData($data)
->renderString($template);
// Result: Hello, John Doe
Если вы не включите параметр подстановки, который упоминается в вашем шаблоне, исходная псевдопеременная отображается в результате:
$template = 'Hello, {firstname} {initials} {lastname}';
$data = [
'title' => 'Mr',
'firstname' => 'John',
'lastname' => 'Doe',
];
echo $parser->setData($data)
->renderString($template);
// Result: Hello, John {initials} Doe
Если вы предоставите строковый параметр подстановки, когда ожидается массив, например, для пары переменных, подстановка выполняется для открывающего тега пары переменных, но закрывающий тег пары переменных не отображается должным образом:
$template = 'Hello, {firstname} {lastname} ({degrees}{degree} {/degrees})';
$data = [
'degrees' => 'Mr',
'firstname' => 'John',
'lastname' => 'Doe',
'titles' => [
['degree' => 'BSc'],
['degree' => 'PhD'],
],
];
echo $parser->setData($data)
->renderString($template);
// Result: Hello, John Doe (Mr{degree} {/degrees})
Фрагменты представления
Не нужно использовать пары переменных для получения эффекта итерации в ваших представлениях. Можно использовать фрагмент представления для того, что должно быть внутри пары переменных, и контролировать итерацию в контроллере вместо представления.
Пример с итерацией, контролируемой в представлении:
$template = '<ul>{menuitems}
<li><a href="{link}">{title}</a></li>
{/menuitems}</ul>';
$data = [
'menuitems' => [
['title' => 'First Link', 'link' => '/first'],
['title' => 'Second Link', 'link' => '/second'],
]
];
echo $parser->setData($data)
->renderString($template);
Результат:
<ul>
<li><a href="/first">First Link</a></li>
<li><a href="/second">Second Link</a></li>
</ul>
Пример с итерацией, контролируемой в контроллере, с использованием фрагмента представления:
$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,
];
echo $parser->setData($data)
->renderString($template2);
Результат:
<ul>
<li><a href="/first">First Link</a></li>
<li><a href="/second">Second Link</a></li>
</ul>
Справочник по классам
-
CodeIgniter\View\Parser -
-
render($view[, $options[, $saveData=false]]) -
Параметры: - $view (string) – Имя файла источника представления
- $options (array) – Массив параметров, как пары ключ/значение
- $saveData (boolean) – Если true, данные будут сохранены для использования с другими вызовами; если false, данные будут очищены после рендеринга представления.
Возвращает: Отрендеренный текст для выбранного представления
Тип возвращаемого значения: string
Создаёт вывод на основе имени файла и данных, которые уже были установлены:
echo $parser->render('myview');Поддерживаемые параметры:
-
cache- время в секундах для сохранения результатов представления -
cache_name- идентификатор, используемый для сохранения/восстановления кешированного результата представления; по умолчанию – путь к представлению -
cascadeData- true, если пары данных, действующие при вложенной или циклической подстановке, должны быть переданы -
saveData- true, если параметр данных представления должен сохраняться для последующих вызовов -
leftDelimiter- левая разделительная строка для использования в синтаксисе псевдопеременных -
rightDelimiter- правая разделительная строка для использования в синтаксисе псевдопеременных
Любые условные подстановки выполняются в первую очередь, а оставшиеся подстановки выполняются для каждой пары данных.
-
renderString($template[, $options[, $saveData=false]]) -
Параметры: - $template (string) – Исходный код представления, предоставленный в виде строки
- $options (array) – Массив параметров, как пары ключ/значение
- $saveData (boolean) – Если true, данные будут сохранены для использования с другими вызовами; если false, данные будут очищены после рендеринга представления.
Возвращает: Отрендеренный текст для выбранного представления
Тип возвращаемого значения: string
Создаёт вывод на основе предоставленного исходного кода шаблона и данных, которые уже были установлены:
echo $parser->render('myview');Поддерживаемые параметры и поведение, как описано выше.
-
setData([$data[, $context=null]]) -
Параметры: - $data (array) – Массив строк данных представления, как пары ключ/значение
- $context (string) – Контекст, который нужно использовать для экранирования данных.
Возвращает: Представление рендерера для цепочки методов
Тип возвращаемого значения: CodeIgniter\View\RendererInterface.
Одновременное задание нескольких фрагментов данных представления:
$renderer->setData(['name'=>'George', 'position'=>'Boss']);
Поддерживаемые контексты экранирования: html, css, js, url, attr или raw. Если «raw», экранирование не произойдёт.
-
setVar($name[, $value=null[, $context=null]]) -
Параметры: - $name (string) – Имя переменной данных представления
- $value (mixed) – Значение этой переменной данных представления
- $context (string) – Контекст, который нужно использовать для экранирования данных.
Возвращает: Представление рендерера для цепочки методов
Тип возвращаемого значения: CodeIgniter\View\RendererInterface.
Установка одного фрагмента данных представления:
$renderer->setVar('name','Joe','html');Поддерживаемые контексты экранирования: html, css, js, url, attr или raw. Если «raw», экранирование не произойдёт.
-
setDelimiters($leftDelimiter = '{', $rightDelimiter = '}') -
Параметры: - $leftDelimiter (string) – Левая разделительная строка для полей подстановки
- $rightDelimiter (string) – Правая разделительная строка для полей подстановки
Возвращает: Представление рендерера для цепочки методов
Тип возвращаемого значения: CodeIgniter\View\RendererInterface.
Переопределение разделительных строк для полей подстановки:
$renderer->setDelimiters('[',']');
-
© 2014–2020 British Columbia Institute of Technology
Licensed under the MIT License.
https://codeigniter.com/user_guide/outgoing/view_parser.html