Если ограничится циклами и выводом Но кое-что, я, например, выносил в шаблон а теперь проблема.. приходиться извращаться. Кроме того, с отладкой плохо Так я мог использовать необъявленный индекс в массиве и у меня была ошибка, а сейчас ее нет
В описание все написано, читайте внимательно. Это залог того, чтобы потом небыло "ой...а я не знал что так..ой версия, ой регистрация.. ой ой.."
да, условно вот пример, пусть неудачные, но весьма наглядный Код: echo (isset($context["column_left"]) ? $context["column_left"] : null);
Не, не Я вам показал скомпилированый кусок А в шаблоне {{ column_left }} И если вдруг, я не объявил $data['column_left'] в контроллере, то я никогда не узнаю есть он или нет
Конечно есть. Лучше чтобы это при разработке по умолчанию было включено или вообще не выключалось. Уж лучше ошибка.. чем пустота. в \system\library\template\Twig\Environment.php у 'strict_variables' => false, ставим в true
Ну.. а давайте в движок твига не лазить system\library\template\twig.php после Код: if ($cache) { $config['cache'] = DIR_CACHE; } Добавить Код: $config['strict_variables'] = true; Это позволит управлять из админки (если сделать интерфейс)
хе.. включил на свою голову При первой ошибке сразу же.. И даже не пустило дальше, блин.. ну напиши что плохо, но зачем так strict'но Зачем дальше? Мне нужно сообщение, что с ним дальше делать, я придумаю Но так резко.. вот смотрите Создаю массив $data['names'] = array(); Далее создаю второй массив $data['names2'] = array(); Заполняю их в одном цикле т.е. индексы у них одинаковые В шаблоне {% for key,nm2 in names2 %} {{ names.key }} Бабах!!! Нет значений. Или что-то подобное (уже не помню) Я, конечно, не спец во твиге. Но на мой взгляд так происходит доступ к элементу массива Если nm2 - массив, то {{ nm2.href }} в крайнем случае в ph стиле {{ nm2['href'] }} и по идее {{ names.key }} должно!!! я не понимаю Подключаю отладчик {{ dump(names) }} Все есть Наконец начинаю читать документацию twig array И тут явно ничего нет Но, мы не привыкли отступать {{ names[key] }} Вот так все доступно.. Т.е. режим нужен только на момент отладки, не переносите его на готовый релиз Вы не можете дать гарантию, что в какой-то момент не попадете на ошибку.
Подскажите, пожалуйста! Мне надо распечатать массив. {{ dump(categories) }}, чтоб посмотреть, что там. Программа ругается, что не знает такую ф-цию dump. Я изменила twig.php-конфигурацию /system/library/template/twig.php). 'debug' => true, $this->twig->addExtension(new \Twig_Extension_Debug()); public function render($template, $cache = false) { // specify where to look for templates $loader = new \Twig_Loader_Filesystem(DIR_TEMPLATE); // initialize Twig environment $config = array('autoescape' => false, 'debug' => true); if ($cache) { $config['cache'] = DIR_CACHE; } $this->twig = new \Twig_Environment($loader, $config); $this->twig->addExtension(new \Twig_Extension_Debug()); try { // load template $template = $this->twig->loadTemplate($template . '.twig');[/font][/color] [font=SFMono-Regular, Consolas,] return $template->render($this->data); } catch (Exception $e) { trigger_error('Error: Could not load template ' . $template . '!'); exit(); } } Кеш обновляла. Но не получается распечатывать, опять не знает ф-цию dump
Я этот extensiion подкючал, в твиговском Environment.php $this->addExtension(new Twig_Extension_Debug($options['debug']));