Последние записи в блоге

JSON из файла в twig

Автор: Дмитрий Цирульников
Дата:  8 Октября 2014

Возникла задача из файла json получить в твиг без php манипуляций. Задачка как оказалось не настолько и сложная, но подумать немного пришлось. 

В Twig есть замечательная функция source, с помощью которой можно получить содержимое файла. 

Допустим, у нас есть файлик config.json со следующим содержанием:

{
    "name": "Tom",
    "last_name": "Sawyer"
}

Далее в нашем twig файле пишем следующее:

{% set source %}
    {% verbatim %}
        {% set list = %source% %}
        Name - {{ list.name }}<br/>
        Last name - {{ list.last_name }}
    {% endverbatim %}
{% endset %}

{{ include(template_from_string( source|replace({ '%source%' : source('scripts.json') }) )) }}

Вот эта странная конструкция include(template_from_string( ... )) строку парсит как твиг шаблон. С ее помощью можно очень много интересного сделать, но об этом потом.
set … endset это присвоение переменной блока кода, если кто не нашел в документации.
verbatim … endverbatim запрещает обработку содержимого, что позволяет нам описать шаблон.

Ну и далее дело за малым, описываем логику в блоке заменяем %source% на наше json и интерпретируем строку как шаблон. В результате получаем следующее:

Name - Tom
Last name - Sawyer

Агрегатор фриланс бирж FreelanceGrab, искать заказы на фрилансе стало еще проще.
8 крупных бирж, удобный поиск и фильтрация по проектам,
моментальное обновление ленты без перезагрузки страницы