Вы должны сначала декодировать JSON.Я бы предложил один из двух подходов:
- Создание пользовательской
manifest
функции для Twig, которая будет возвращать декодированный объект манифеста - или создание
json_decode
фильтра для Twig, декодирование включено jsonсодержание и использование
функция манифеста
<?php
namespace App\Twig;
class ManifestExtension extends \Twig_Extension
{
private $manifestFile;
public function __construct($manifestFile)
{
$this->manifestFile = $manifestFile;
}
public function getFunctions()
{
return array(
new \Twig_SimpleFunction('manifest', array($this, 'manifest')),
);
}
public function manifest()
{
$content = file_get_contents($this->manifestFile);
return json_decode($content);
}
}
Вы можете зарегистрировать ее как службу в services.yml
, указав путь к файлу manifest.json.
App\Twig\ManifestExtension:
class: 'App\Twig\ManifestExtension'
arguments: ['%kernel.project_dir%/../public/manifest.json']
tags: [twig.extension]
Использование:
{% set manifest = manifest() %}
фильтр json_decode
Здесь уже рассматривается:
ДекодированиеJSON in Twig
Использование:
{% set manifest %}
{% include './manifest.json' %}
{% endset %}
{% set manifest = manifest | json_decode %}