У вас включен AdBlock или иной блокировщик рекламы.

Пожалуйста, отключите его, доход от рекламы помогает развитию сайта и появлению новых статей.

Спасибо за понимание.

В другой раз
DevGang блог о програмировании
Авторизоваться

JSON из файла в twig 

Возникла задача из файла 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 - TomLast 
Last name - Sawyer
#twig

Присоеденяйся в тусовку

Поделитесь своим опытом, расскажите о новом инструменте, библиотеке или фреймворке. Для этого не обязательно становится постоянным автором.

Попробовать