2012-05-31 4 views
0

Это странно. Я пытаюсь реализовать связь 1: 1 между Twig и некоторыми объектами ViewModel, так что Twig знает о ее контексте и предполагает, что переменные являются методами объекта.Twig - считать переменные как методы объекта

Например, у меня есть шаблон Twig и ViewModel_Product. Я мог это сделать ...

$template->render(array('product', $product)); 

... и в шаблоне ...

<p>{{ product.name }}</p> 

Однако, потому что единственное, что никогда не будет передан шаблон является модель , кажется бессмысленным, чтобы пользователи префикс каждой переменной. Лучшее использование будет:

$template->render(array('viewModel', $product)); 

... и ...

<p>{{ name }}</p> 

Как я могу добиться этого?

+1

Вы уверены, что хотите удалить префикс продукта? Он служит пространством имен и упрощает чтение и расширение кода. –

ответ

0

Я не верю, что это было бы возможно потому, что веточка отслеживает другие глобальные переменные в каждом шаблоне, и как бы узнать, является ли переменная {{name}} частью вашего представления или какой-либо другой глобальной переменной? И как уже упоминалось выше, наличие префикса переменной помогает проксировать пространство вашего представления, что упрощает чтение.

Не будьте ленивым кодировщиком.

Смежные вопросы