Как вставить php код в twig?

Пользователь

от kenya , в категории: PHP , 3 года назад

Как вставить php код в twig?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

2 ответа

A

Администратор

от admin , 3 года назад

@kenya Вы не сможете вставить напрямую PHP код в twig шаблон, но Вы можете создать фильтр или функцию на PHP и затем использовать ее в Twig, например:


 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
namespace App\Twig;

use Twig\Extension\AbstractExtension;
use Twig\TwigFilter;

class AppExtension extends AbstractExtension
{
    public function getFilters()
    {
        return [
            new TwigFilter('price', [$this, 'formatPrice']),
        ];
    }

    public function formatPrice(float $number, int $decimals = 0, string $decPoint = '.', string $thousandsSep = ','): string
    {
        $price = number_format($number, $decimals, $decPoint, $thousandsSep);
        $price = '$'.$price;

        return $price;
    }
}


И затем в Twig можно использовать этот фильтр:

1
{{ product.price|price(2, ',', '.') }}


Более подробно можно также найти в документации https://symfony.com/doc/current/templating/twig_extension.html

Пользователь

от miguel_ritchie , год назад

@kenya 

Для вставки PHP кода в Twig необходимо использовать специальный тег {{ }}, после которого следует вставить переменную с PHP кодом. Например:

1
{{ <?= $variable ?> }}


В данном случае переменная $variable будет содержать PHP код, который будет выполнен при рендеринге шаблона. Обратите внимание, что символы <?= используются для короткой записи вывода переменной, которая является результатом выполнения PHP кода. Если необходимо выполнить произвольный PHP код без вывода результатов, также можно использовать тег {{ }} и обычный PHP код внутри него. Например:

1
2
3
4
5
{{ 
    $var1 = 1; 
    $var2 = 2; 
    echo $var1 + $var2; 
}}


В данном случае будет выполнен PHP код, который присваивает переменным $var1 и $var2 значения 1 и 2 соответственно, а затем выводит их сумму.