2016-06-27 2 views
0

В этой строке кода, Twig передается массив имен переменных и значений:Использование JSON для передачи переменных Twig

echo $twig->render('index.html.twig', array('name' => 'John')); 

Однако вместо прохождения их вручную, есть способ перехода в некоторые JSON с этими ключами/значениями уже установлены? Например.

echo $twig->render('index.html.twig', array(array_from_json_file('names.json')); 

Очевидно, что вы могли бы написать array_from_json_file функцию с нуля, однако мне было интересно, если есть уже встроенные функции, которые я должен использовать.

+1

'json_decode ($ json_string, правда) – DarkBee

+0

"функция с нуля"' вы говорите около 2 строк кода. справедливо. –

+0

@HorstJahns, который всегда кажется очень рациональным аргументом. Тем не менее, я всегда ненавижу изобретать свой собственный код просто ради этого. Самое приятное в библиотечном коде, что он имеет модульные тесты (надеюсь!), Отлаживается и имеет документацию. В этом случае он не существует, поэтому я собираюсь использовать данный фрагмент. – Snowcrash

ответ

0

При условии, что array_from_json_file возвращает ассоциативный массив, вы можете просто передать его возвращаемое значение ко второму аргументу render.

echo $twig->render('index.html.twig', array_from_json_file('names.json')); 

array_from_json_file бы установить второй аргумент json_decode к true, чтобы получить ассоциативный массив обратно

public function array_from_json_file($basename) 
{ 
    // do not allow $basename to be user submitted ever 
    return json_decode(file_get_contents("/path/to/{$basename}"), true); 
} 
Смежные вопросы