obj ['prop'] рдХреЗрд╡рд▓ рддрднреА рдорд╛рди рд▓реМрдЯрд╛рдПрдЧрд╛ рдЬрдм obj рд╕рд░рдгреА рд╣реИ рдФрд░ рдСрдмреНрдЬреЗрдХреНрдЯ рдкреНрд░реЙрдкрд░реНрдЯреА рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХрд╛ рдХреЛрдИ рддрд░реАрдХрд╛ рдирд╣реАрдВ рд╣реИ рдпрджрд┐ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдПрдХ рдЪрд░ рдореЗрдВ рдЗрд╕рдХрд╛ рдирд╛рдо рд╣реИ: obj [propName] рд╢реВрдиреНрдп рд╡рд╛рдкрд╕ рдЖ рдЬрд╛рдПрдЧрд╛
рдЖрдк рдбреЙрдЯ рдиреЛрдЯреЗрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдЬреЛ рд╕рд░рдгрд┐рдпреЛрдВ рдФрд░ рд╡рд╕реНрддреБрдУрдВ рджреЛрдиреЛрдВ рдХреЗ рд▓рд┐рдП рдЬрд╛рдБрдЪ рдХрд░реЗрдЧрд╛ рдЗрд╕рд▓рд┐рдП obj.name рдкрд╣рд▓реЗ рдПрдХ obj ['name'] рдХреЗ рд▓рд┐рдП рджрд┐рдЦреЗрдЧрд╛ рдлрд┐рд░ obj->name рдФрд░ last obj->getName() рдЗрд╕реЗ рдЖрдЧреЗ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдореЗрдВ рднреА рд╕рдордЭрд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ рдбрд┐рдЬрд╛рдЗрдирд░ рдЕрдзреНрдпрд╛рдп рдХреЗ рд▓рд┐рдП рдЯрд╣рдиреА рдХреЗ рддрд╣рддред
рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЖрд░реНрдЯреАрд╡ рдХрд╛ рдореБрджреНрджрд╛ рдСрдмреНрдЬреЗрдХреНрдЯ рдЧреБрдгреЛрдВ рдХреЛ рдЧрддрд┐рд╢реАрд▓ рд░реВрдк рд╕реЗ рдПрдХреНрд╕реЗрд╕ рдХрд░рдиреЗ рдХреЗ рд╕рдВрдмрдВрдз рдореЗрдВ рд╣реИ, рдХреЗрд╡рд▓ рдСрдлрд╝рд╕реЗрдЯ/рдЧреБрдгреЛрдВ рддрдХ рдкрд╣реБрдВрдЪрдиреЗ рдХреЗ рд╡рд┐рд░реЛрдз рдореЗрдВред рдореЗрд░рд╛ рдЙрджрд╛рд╣рд░рдг рдХреЛрдб рджреЗрдЦреЗрдВред
/* php */
$obj = new stdClass;
$obj->foo = "bar";
$template->render(array('obj, $obj));
/* twig */
{% set prop as "foo" %}
{{ obj.foo }}
// outputs "bar"
{{ obj.$prop }}
// (pseudo-code)
// would compile down to {{ obj.foo }} and output "bar"
jwpage рд╕рд╣реА рд╣реИ, рд╕рдВрдкрддреНрддрд┐ рдХрд╛ рдирд╛рдо, рдЬрд┐рд╕реЗ рдореБрдЭреЗ рдЕрдиреНрдп рдЪрд░ рдореЗрдВ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдореБрдЭреЗ рдЗрд╕ PHP рдХреЛрдб рдХреЗ рдмрд░рд╛рдмрд░ рдЪрд╛рд╣рд┐рдП:
$obj->{$propName}
рдХреНрдпреЛрдВрдХрд┐ $obj рд╕рд░рд▓ рд╡рд╕реНрддреБ рд╣реИ рдФрд░ рдпрд╣ ArrayAccess рдХреЛ рд▓рд╛рдЧреВ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ
рдпрд╣ рд╕реБрд╡рд┐рдзрд╛ рдЯрд╣рдиреА рдореЗрдВ рд╢рд╛рдорд┐рд▓ рдирд╣реАрдВ рдХреА рдЬрд╛рдПрдЧреАред рдЯрд╣рдиреА рдПрдХ рдЯреЗрдореНрдкреНрд▓реЗрдЯ рд╕рд┐рд╕реНрдЯрдо рд╣реИ, рдкреВрд░реА рддрд░рд╣ рд╕реЗ рд╕реБрд╡рд┐рдзрд╛рдУрдВ рд╡рд╛рд▓реА рднрд╛рд╖рд╛ рдирд╣реАрдВ рд╣реИред рдЧрддрд┐рд╢реАрд▓ рдЧреБрдг рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдЯрд╣рдиреА рдХреЗ рджрд╛рдпрд░реЗ рд╕реЗ рдмрд╛рд╣рд░ рд╣реИрдВред
рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдзрд╛рд░рд╛рд╡рд╛рд╣рд┐рдХ рдШрдЯрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдиреЗрд╕реНрдЯреЗрдб stdClass рдЙрджрд╛рд╣рд░рдгреЛрдВ рдХреЛ рдиреЗрд╕реНрдЯреЗрдб рд╕рд░рдгрд┐рдпреЛрдВ рдореЗрдВ рдмрджрд▓рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред
рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╕рд┐рд░реНрдл рдПрдХ рд╕рд░рдгреА рдореЗрдВ рдПрдХ stdClass рдЯрд╛рдЗрдкрдХрд╛рд╕реНрдЯрд┐рдВрдЧ рдХрд░рдХреЗ рдЗрд╕реЗ рдкрд░рд┐рд╡рд░реНрддрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред рдЗрд╕реЗ рдкрд╣рд▓реЗ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдЕрдзрд┐рдХ рдХрдард┐рди рдХреНрдпреЛрдВ рдмрдирд╛рддреЗ рд╣реИрдВ :)
[~] php -r '$class = new stdClass;$class->prop = "hejsa";print_r((array) $class);'
Array
(
[prop] => hejsa
)
@henrikbjorn : рд╣рд╛рдБ рдЯрд╛рдЗрдк рдХрд╛рд╕реНрдЯрд┐рдВрдЧ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рд╣рд╛рд▓рд╛рдВрдХрд┐ рдпрд╣
рдореБрдЭреЗ рднреА рдпрд╣реА рд╕рдорд╕реНрдпрд╛ рдереА рдФрд░ рдореИрдВрдиреЗ рдЗрд╕реЗ рдПрдХ рдлрд┐рд▓реНрдЯрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╣рд▓ рдХрд┐рдпрд╛ред рдореБрдЭреЗ рдкрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдЪреАрдЬреЛрдВ рдХреЛ рдХрд░рдиреЗ рдХрд╛ рд╕рд╣реА рддрд░реАрдХрд╛ рдирд╣реАрдВ рд╣реИ рд▓реЗрдХрд┐рди рдпрд╣ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рд╕рдмрд╕реЗ рд╕рд╛рдл рд▓рдЧрддрд╛ рд╣реИред
рдореВрд▓ рд░реВрдк рд╕реЗ рдпрд╣ рдЗрд╕ рдкрд░ рдЙрдмрд▓рддрд╛ рд╣реИ:
function twig_get_filter()
{
$params = func_get_args();
$object = array_shift($params);
$field = implode('', $params);
return $object->$field;
}
рдФрд░ рдЖрдк рдЗрд╕реЗ рдЗрд╕ рдкреНрд░рдХрд╛рд░ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:
{{ object|get(text, '_', language, '_', type) }}
рдЧрддрд┐рд╢реАрд▓ рдЧреБрдг рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдЯрд╣рдиреА рдХреЗ рджрд╛рдпрд░реЗ рд╕реЗ рдмрд╛рд╣рд░ рд╣реИрдВред
рдХреНрдпреЛрдВ? рдореИрдВ рд╕рд┐рдореНрдлрдиреА рдбрд╛рдЯрд╛рдЧреНрд░рд┐рдб рдХреА рддрд░рд╣ рдХреБрдЫ рд╡рд┐рдХрд╕рд┐рдд рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ рдФрд░ рдореИрдВ рдЗрд╕ рддрд░рд╣ рдХреБрдЫ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ:
{# columns #}
{% for name, column in grid.columns %}
<td>{{ column.render(row[name])|raw }}</td>
{% endfor %}
рдореБрдЭреЗ рдЕрдкрдиреЗ рдбреЗрдЯрд╛рдЧреНрд░рд┐рдб рдореЗрдВ Twig_Template::getAttribute рд╡рд┐рдзрд┐ рдЬреИрд╕реЗ рдХреБрдЫ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рд╕реЗ рдмреЗрд╣рддрд░ рдХреЛрдИ рд╕рдорд╛рдзрд╛рди рдирд╣реАрдВ рджрд┐рдЦ рд░рд╣рд╛ рд╣реИред рдореБрдЭреЗ рдкрд╕рдВрдж рд╣реИ рдХрд┐ рдпрд╣ рдХрд┐рддрдирд╛ рд╕рд╛рд░реНрд╡рднреМрдорд┐рдХ рд╣реИред
рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдПрдХ рдмрдврд╝рдд рдХрд╛ рдорд╛рдорд▓рд╛ рд╣реИ рдФрд░ рдХреНрдпреЛрдВрдХрд┐ рдЖрдк рдЖрд╕рд╛рдиреА рд╕реЗ рдПрдХ рдРрд╕рд╛ рдлрд╝рдВрдХреНрд╢рди рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВ рдЬреЛ рд╡рд╣ рдХрд░рддрд╛ рд╣реИ рдЬреЛ рдЖрдк рдмрд╣реБрдд рдЖрд╕рд╛рдиреА рд╕реЗ рдЪрд╛рд╣рддреЗ рд╣реИрдВ (рдЕрд╡рд╛рдВрдЫрд┐рдд):
function twig_array_get_function($array, $name)
{
return $array[$name];
}
рдЙрдкрдпреЛрдЧ:
row|array_get(name)
рд╣рд╛рдБ, рд╕рд░рдгрд┐рдпреЛрдВ рдХреЗ рд▓рд┐рдП рдпрд╣ рдЖрд╕рд╛рди рд╣реИред рд╕рдорд╕реНрдпрд╛ рдпрд╣ рд╣реИ рдХрд┐ рдореБрдЭреЗ рд╡рд╕реНрддреБрдУрдВ рдХреЗ рдЧреЗрдЯрд░реНрд╕ рдЖрджрд┐ рдХреЛ рднреА рд▓рд╛рдЧреВ рдХрд░рдирд╛ рд╣реИ рдЬреЛ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдЯреНрд╡рд┐рдЧ рдореЗрдВ рд▓рд╛рдЧреВ рд╣реИ (рд▓реЗрдХрд┐рди рдЗрд╕ рдХреЛрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХрд╛ рдХреЛрдИ рддрд░реАрдХрд╛ рдирд╣реАрдВ рд╣реИ)ред
рдЕрдЪреНрдЫреА рдЦрдмрд░! 1.2 рдХреЗ рд░реВрдк рдореЗрдВ, рдЕрдм рдЖрдк рдирдП attribute
рдлрд╝рдВрдХреНрд╢рди (c609060 рджреЗрдЦреЗрдВ) рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдПрдХ рдЪрд░ рдкрд░ рдПрдХ рдЧрддрд┐рд╢реАрд▓ рд╡рд┐рд╢реЗрд╖рддрд╛ рдкреНрд░рд╛рдкреНрдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
рдпрд╣ рджреЗрдЦрдХрд░ рдЕрдЪреНрдЫрд╛ рд▓рдЧрд╛ рдХрд┐ рдЗрд╕рдХреЗ рд▓рд┐рдП рд╕рдорд░реНрдерди рдЬреЛрдбрд╝рд╛ рдЧрдпрд╛ рд╣реИред рдореИрдВ рдЕрднреА рдЯрд╣рдиреА рд╕реЗ рд╢реБрд░реБрдЖрдд рдХрд░ рд░рд╣рд╛ рд╣реВрдВред рд╡рд╛рдХреНрдп рд░рдЪрдирд╛ рдХреЛ рдХреБрдЫ рдЗрд╕ рддрд░рд╣ рдмрджрд▓рдирд╛ рдХрд┐рддрдирд╛ рдХрдард┐рди рд╣реЛрдЧрд╛
{{рдСрдмреНрдЬреЗрдХреНрдЯред{рдкреНрд░реЙрдкрд░реНрдЯреА}}} рдпрд╛ {{рдСрдмреНрдЬреЗрдХреНрдЯред{рд╡рд┐рдзрд┐}(attrs)}}
рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ {{рд╡рд┐рд╢реЗрд╖рддрд╛ (рд╡рд╕реНрддреБ, рд╡рд┐рдзрд┐, рддрд░реНрдХ)}} рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдереЛрдбрд╝рд╛ рд╕рд╛рдл рд╣реИ
рд╢рд╛рдпрдж рдЖрдк рдореБрдЭреЗ рд╕рд╣реА рджрд┐рд╢рд╛ рдореЗрдВ рдЗрдВрдЧрд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ? рдореИрдВ рдЕрднреА рддрдХ рд╕рднреА рд╕реНрд░реЛрдд рдХреЛрдб рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдирд╣реАрдВ рдЧрдпрд╛ рд╣реВрдВред
@ rspenc29 : рдореИрдВ рдЗрд╕реЗ "рдХреНрд▓реАрдирд░" рдирд╣реАрдВ рдмрдирд╛рдирд╛ рдЪрд╛рд╣рддрд╛ рдХреНрдпреЛрдВрдХрд┐ рдореИрдВ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ рдХрд┐ рдЖрдк рдЗрд╕реЗ рдЯреЗрдореНрдкреНрд▓реЗрдЯ рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рджреЛ рдмрд╛рд░ рд╕реЛрдЪреЗрдВред рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рд╕рд╛рд╡рдзрд╛рдиреА рдХреЗ рд╕рд╛рде рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП рдХреНрдпреЛрдВрдХрд┐ рдЬреНрдпрд╛рджрд╛рддрд░ рд╕рдордп, рдпрд╣ рдПрдХ рдЧрдВрдз рд╣реИ рдХрд┐ рдЖрдк рдПрдХ рдЯреЗрдореНрдкрд▓реЗрдЯ рдореЗрдВ рдХреБрдЫ рдХрд░ рд░рд╣реЗ рд╣реИрдВ рдЬреЛ рдХрд╣реАрдВ рдФрд░ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред
рдХреЛрдИ рдмрд╛рдд рдирд╣реАрдВред рдореЗрдВ рдЗрд╕рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рдКрдВрдЧрд╛ред
рдПрдПрд╕рдбреА рд╕рдорд░реНрдкрд┐рдд
рддреБрдо рдХреЛрд╢рд┐рд╢ рдХрд░ рд╕рдХрддреЗ рд╣реЛ
{{ attribute(object, method) }}
{{attribute(obj, foo)}}
http://twig.sensiolabs.org/doc/2.x/functions/attribute.html
рд╕рдмрд╕реЗ рдЙрдкрдпреЛрдЧреА рдЯрд┐рдкреНрдкрдгреА
рддреБрдо рдХреЛрд╢рд┐рд╢ рдХрд░ рд╕рдХрддреЗ рд╣реЛ
{{ attribute(object, method) }}
{{attribute(obj, foo)}}
http://twig.sensiolabs.org/doc/2.x/functions/attribute.html