TwigRendererEngine
class TwigRendererEngine extends AbstractRendererEngine
Постоянные значения
| CACHE_KEY_VAR | Переменная в {@link FormView}, используемая в качестве ключа кэша. |
Свойства
| protected | $defaultThemes | из AbstractRendererEngine | |
| protected | $themes | из AbstractRendererEngine | |
| protected | $useDefaultThemes | из AbstractRendererEngine | |
| protected | $resources | из AbstractRendererEngine |
Методы
| __construct(array $defaultThemes, Environment $environment) Создаёт новый движок рендеринга. | ||
| setTheme(FormView $view, mixed $themes, bool $useDefaultThemes = true) Устанавливает тему(ы) для рендеринга представления и его дочерних элементов. | из AbstractRendererEngine | |
| mixed | getResourceForBlockName(FormView $view, string $blockName) Возвращает ресурс для имени блока. | из AbstractRendererEngine |
| mixed | getResourceForBlockNameHierarchy(FormView $view, array $blockNameHierarchy, int $hierarchyLevel) Возвращает ресурс для иерархии имён блоков. | из AbstractRendererEngine |
| int|bool | getResourceHierarchyLevel(FormView $view, array $blockNameHierarchy, int $hierarchyLevel) Возвращает уровень иерархии, на котором можно найти ресурс. | из AbstractRendererEngine |
| bool | loadResourceForBlockName(string $cacheKey, FormView $view, string $blockName) Загружает кэш с ресурсом для данного имени блока. | |
| string | renderBlock(FormView $view, mixed $resource, string $blockName, array $variables = array()) Рендерит блок в заданном ресурсе рендеринга. | |
| loadResourcesFromTheme(string $cacheKey, mixed $theme) Загружает ресурсы для всех блоков в теме. |
Детали
__construct(array $defaultThemes, Environment $environment)
Создаёт новый движок рендеринга.
Параметры
| массив | $defaultThemes | Значения по умолчанию для тем. Тип этих тем открыт для реализации. |
| Environment | $environment |
setTheme(FormView $view, mixed $themes, bool $useDefaultThemes = true)
Устанавливает темы, которые будут использоваться для рендеринга представления и его дочерних элементов.
Параметры
| FormView | $view | Представление, которому нужно назначить тему(ы) |
| mixed | $themes | Тема(ы). Тип этих тем открыт для реализации. |
| bool | $useDefaultThemes | Если true, будут использованы темы по умолчанию, указанные в движке |
mixed getResourceForBlockName(FormView $view, string $blockName)
Возвращает ресурс для имени блока.
Ресурс сначала ищется в темах, прикреплённых к $view, затем в темах его родительского представления и так далее, пока не будет найден ресурс.
Тип ресурса определяется реализацией. Ресурс позже передаётся в {@link renderBlock()} алгоритмом рендеринга.
Параметры
| FormView | $view | представление для определения используемых тем. Сначала рассматриваются темы, прикреплённые непосредственно к представлению с помощью {@link setTheme()}, затем темы его родителя и т.д. |
| string | $blockName | Имя блока для рендеринга |
Возвращаемое значение
| mixed | ресурс рендеринга или false, если не был найден |
mixed getResourceForBlockNameHierarchy(FormView $view, array $blockNameHierarchy, int $hierarchyLevel)
Возвращает ресурс для иерархии блоков.
Иерархия блоков — это массив, начинающийся с корня иерархии и продолжающийся с потомка этого корня, потомка этого потомка и т.д. Ниже приведен пример иерархии блоков:
form_widget
text_widget
url_widget
В этом примере «url_widget» — это самый специфичный блок, а другие блоки — его предки в иерархии.
Второй параметр $hierarchyLevel определяет уровень иерархии, который должен быть рендерен. Например, если $hierarchyLevel равен 2 для вышеупомянутой иерархии, движок сначала ищет блок «url_widget», а затем, если его не существует, блок «text_widget» и т. д.
Тип ресурса определяется реализацией. Ресурс позже передаётся в {@link renderBlock()} алгоритмом рендеринга.
Параметры
| FormView | $view | представление для определения используемых тем. Сначала рассматриваются темы, прикреплённые непосредственно к представлению с помощью {@link setTheme()}, затем темы его родителя и т.д. |
| массив | $blockNameHierarchy | Иерархия имён блоков, начиная с корневого блока |
| int | $hierarchyLevel | Уровень в иерархии, с которого следует начать поиск. Уровень 0 указывает на корневой блок, т. е. первый элемент $blockNameHierarchy. |
Возвращаемое значение
| mixed | ресурс рендеринга или false, если не был найден |
int|bool getResourceHierarchyLevel(FormView $view, array $blockNameHierarchy, int $hierarchyLevel)
Возвращает уровень иерархии, на котором может быть найден ресурс.
Иерархия блоков — это массив, начинающийся с корня иерархии и продолжающийся с потомка этого корня, потомка этого потомка и т.д. Ниже приведен пример иерархии блоков:
form_widget
text_widget
url_widget
Второй параметр $hierarchyLevel определяет уровень иерархии, который должен быть рендерен.
Если мы вызовем этот метод с уровнем иерархии 2, движок сначала будет искать ресурс для блока «url_widget». Если такой ресурс существует, метод возвращает 2. В противном случае он пытается найти ресурс для блока «text_widget» (на уровне 1) и, снова, возвращает 1, если ресурс был найден. Метод продолжает поиск ресурсов до тех пор, пока не будет достигнут корневой уровень и ничего не будет найдено. В этом случае возвращается false.
Тип ресурса определяется реализацией. Ресурс позже передаётся в {@link renderBlock()} алгоритмом рендеринга.
Параметры
| FormView | $view | представление для определения используемых тем. Сначала рассматриваются темы, прикреплённые непосредственно к представлению с помощью {@link setTheme()}, затем темы его родителя и т.д. |
| массив | $blockNameHierarchy | Иерархия имён блоков, начиная с корневого блока |
| int | $hierarchyLevel | Уровень в иерархии, с которого следует начать поиск. Уровень 0 указывает на корневой блок, т. е. первый элемент $blockNameHierarchy. |
Возвращаемое значение
| int|bool | Уровень иерархии или false, если ресурс не был найден |
protected bool loadResourceForBlockName(string $cacheKey, FormView $view, string $blockName)
Загружает кеш с ресурсом для данного имени блока.
Эта реализация загружает все блоки присвоенных темам данного представления и всех его предковых представлений. Это необходимо, потому что Twig получает список блоков позже. В этот момент все блоки должны быть загружены, в случае использования функции «block()» в шаблоне Twig.
Параметры
| string | $cacheKey | Ключ кеша представления формы |
| FormView | $view | Представление формы для поиска применяемых тем |
| string | $blockName | Имя блока для загрузки |
Возвращаемое значение
| bool | True, если ресурс можно загрузить, в противном случае false |
См. также
| getResourceForBlock() |
string renderBlock(FormView $view, mixed $resource, string $blockName, array $variables = array())
Рендерит блок в заданном ресурсе рендеринга.
Ресурс можно получить, вызвав {@link getResourceForBlock()} или {@link getResourceForBlockHierarchy()}. Тип ресурса определяется реализацией.
Параметры
| FormView | $view | Представление для рендеринга |
| mixed | $resource | Ресурс рендеринга |
| string | $blockName | Имя блока для рендеринга |
| массив | $variables | Переменные для передачи в шаблон |
Возвращаемое значение
| string | HTML разметка |
protected loadResourcesFromTheme(string $cacheKey, mixed $theme)
Загружает ресурсы для всех блоков в теме.
Параметры
| string | $cacheKey | Ключ кеша для хранения ресурса |
| mixed | $theme | Тема для загрузки блока. Этот параметр передаётся по ссылке, так как может потребоваться предварительная инициализация темы. Любые изменения, внесённые в эту переменную, будут сохранены и доступны при последующих вызовах этого метода с той же темой. |
© 2004–2017 Fabien Potencier
Licensed under the MIT License.
https://api.symfony.com/4.1/Symfony/Bridge/Twig/Form/TwigRendererEngine.html