Sử dụng cấu hình Symfony2
Nếu bạn đang sử dụng Symfony2, bạn có thể đặt globals trong tập tin config.yml
của bạn:
# app/config/config.yml
twig:
# ...
globals:
myStuff: %someParam%
Và sau đó sử dụng {{ myStuff }}
bất cứ nơi nào trong ứng dụng của bạn.
Sử dụng Twig_Environment :: addGlobal
Nếu bạn đang sử dụng cành trong một dự án khác, bạn có thể đặt globals của bạn trực tiếp trong môi trường:
$twig = new Twig_Environment($loader);
$twig->addGlobal('myStuff', $someVariable);
Và sau đó sử dụng {{ myStuff }}
bất cứ nơi nào trong ứng dụng của bạn .
Sử dụng một phần mở rộng Twig
Nếu bạn có rất nhiều biến toàn cầu và muốn chỉ định một bộ globals cho một phần cụ thể của ứng dụng của bạn mà thôi, bạn có thể tạo một phần mở rộng Twig:
class Some_Twig_Extension extends Twig_Extension implements Twig_Extension_GlobalsInterface
{
public function getGlobals()
{
return array(
'someStuff' => $this->myVar,
// ...
);
}
// ...
}
Sau đó nhập nó trong môi trường của bạn chỉ khi cần thiết:
$twig = new Twig_Environment($loader);
$twig->addExtension(new Project_Twig_Extension());
Và vẫn sử dụng {{ myStuff }}
ở bất kỳ đâu trong ứng dụng của bạn.
Sử dụng một mẫu Twig
Khi bạn bao gồm một đoạn mã Twig, bạn chỉ bao gồm quan điểm render đến từ mã mà, không phải là mã riêng của mình. Vì vậy, đó là do thiết kế không thể bao gồm một tập hợp các biến theo cách bạn đang tìm kiếm.
Nguồn
2015-03-10 08:32:55
có thể trùng lặp của [Symfony 2 + Twig global variables] (http://stackoverflow.com/questions/9263903/symfony-2-twig-global-variables) – pbenard