您无法在twig模板中直接调用PHP.您需要创建一个过滤器或函数来执行您正在查找的内容.

$twig = new Twig_Environment($loader, $params);

$twigFunction = new Twig_SimpleFunction('MyStaticClass', function($method) {

MyStaticClass::$method

});

$twig->addFunction($twigFunction);

然后在你的树枝模板中做:

{{ MyStaticClass('getData') }}

当然,上面的例子假设MyStaticClass在你的任何地方的范围内.

Symfony示例

您必须创建一个树枝扩展.示例如下:

namespace PurpleNeve\Web\PNWebBundle\Extensions;

use PurpleNeve\Web\PNWebBundle\DependencyInjection\CurrencyConverter;

class TwigCurrency extends \Twig_Extension

{

private $converter;

public function __construct(CurrencyConverter $converter)

{

$this->converter = $converter;

}

public function getName()

{

return 'currency';

}

public function getFilters()

{

return array(

'convertCurrency' => new \Twig_Filter_Method($this, 'getConversionBetween')

);

}

public function getConversionBetween($amount, $isoFrom, $isoTo="USD")

{

try {

$value = $this->converter->convertAmount($amount, $isoFrom, $isoTo);

return round($value,2);

} catch(\Exception $e) {

return "?";

}

}

}

这是我创建的一个扩展示例,用于将货币从一种货币转换为另一种货币.

要实现它,您需要在services.yml中为它创建一个服务对象

parameters:

currency_converter.class: PurpleNeve\Web\PNWebBundle\DependencyInjection\CurrencyConverter

services:

currency_converter:

class: "%currency_converter.class%"

arguments : [@doctrine.orm.entity_manager]

twig.extension.currency:

class: PurpleNeve\Web\PNWebBundle\Extensions\TwigCurrency

tags:

- { name: 'twig.extension' }

arguments : [ @currency_converter ]

然后如上所述,在twig中我可以使用{{convertCurrency(55505,’CAD’,’USD)}}调用该类和函数

twig调用PHP函数,php – 如何在Symfony2 Twig模板中调用静态函数相关推荐

  1. HTML调用Java函数或语句,在动态THML语句中调用JS函数传递带空格参数的问题

    刚刚遇到一个问题,调用js函数的参数里带空格,造成调用失败的问题. 部分代码如下: html+=" "; //name中如果有空格就是调用失败 html+=" " ...

  2. r语言中调用c 程序,如何在R程序包中调用C函数

    程序包名称为pareto.这是.c文件中src目录:如何在R程序包中调用C函数 #include #include #include "Rinternals.h" #include ...

  3. 如何在HTML文档中调用Python程序?

    如何在HTML文档中调用Python程序? 简介: ​ 前几天突然遇到这样的一个需求,在html页面中调用python程序对图像进行处理,之后将处理后的图像重新显示在页面中.刚开始还不知道html页面 ...

  4. Matlab函数打包为.jar后在java中调用出现错误:Exception:com.mathworks.toolbox.javabuilder.MWException: An error occur

    Matlab函数打包为.jar后在java中调用出现错误:Exception:com.mathworks.toolbox.javabuilder.MWException: An error occur ...

  5. python 修改模板对象的属性_django小技巧之html模板中调用对象属性或对象的方法...

    环境:依赖最初test2数据库 python3版本 多python版本环境 进入,python3虚拟环境,新建项目test4: ]# cd py3/django-test1/ ]# django-ad ...

  6. python把模块装到文件夹中_把模块有关联的放在一个文件夹中 在python2中调用文件夹名会直接失败 在python3中调用会成功,但是调用不能成功的解决方案...

    把模块有关联的放在一个文件夹中 在python2中调用文件夹名会直接失败 在python3中调用会成功,但是调用不能成功 解决办法是: 在该文件夹下加入空文件__init__.py python2会把 ...

  7. dede taglist模板中调用自定义字段

    dede taglist模板中调用自定义字段 [field:id runphp="yes"]global $dsql; $query = "SELECT 自定义字段 FR ...

  8. 帝国cms:评论列表模板中调用热门文章或是推荐文章的js方法

    后台管理评论模板里有评论的列表模板,想在评论列表模板中调用热门文章或是推荐文章,现在考虑到标签和js. 长知识:动态模板无法使用标签,所以标签在这里就pass了,专心搞js----> 1.后台= ...

  9. php调用会员刷卡,dedecms模板中调用会员信息标签的方法

    dedecms模板中调用会员信息标签的方法 比如你想在DEDE首页或者内页里调用会员:用户名.昵称.性别.会员等级.注册邮箱.会员级别等信息.就需要我们本篇教程提供的调用标签了. 首先,我们打开文件 ...

最新文章

  1. android 仿微信聊天气泡显示图片,实现仿照微信聊天气泡里显示图片效果的自定义View...
  2. 把dataframe删掉第一行_python – 从Pandas DataFrame中的所有行中减去第一行
  3. php static method,php 类方法用static::hello(); 等同于 $this-hello();吗?
  4. [JavaWeb-Bootstrap]Bootstrap概述
  5. sql for循环_【赵强老师】什么是PL/SQL?
  6. 改手机为自动开机的车载导航仪
  7. IP SAN与IB SAN
  8. OSPF(七)OSPF特殊区域之NSSA和Totally NSSA详解及配置
  9. 05.Node.js和浏览器之间的差异
  10. MAC 访问 Windows 共享文件夹
  11. 阿里云国际站服务器怎么样
  12. BCH采用大爆发,支付理念深入人心
  13. 【嵌入式】——串口实验——实现芯片串口收发数据,按键中断串口发送数据,串口接收数据中断来控制LED亮/灭
  14. 基于ffmpeg+opengl+opensl es的android视频播放器
  15. 大数据_——利用hive仓库模拟数据进行日活、日新、留存数据的分析统计(详细代码步骤)
  16. 计算机学院篮球队英文名称,【体育文化节】计算机学院研究生代表队获得篮球联赛冠军...
  17. 企业级市场“两马战”:云计算将成重要战场
  18. Nginx :user nobody
  19. 电工学简明教程笔记-----第二更 2018 3.11 15:25
  20. 虹科教您 | 虹科TSN配置软件RELY-TSN-Configurator基本操作指南

热门文章

  1. 常用Sybase命令
  2. 驱动-遍历驱动、隐藏驱动
  3. 如何判断一个数是否为2的幂次方
  4. 公交车 自动报站功能
  5. 定理:正交向量组一定线性无关
  6. html5经纬度定位 源码_h5实现获取用户地理定位的实例代码
  7. BDC 3种方法综述
  8. 普通类,抽象类和接口之间的区别
  9. c语言if(x==0x0f){x=0;y^=1;},全国2007年7月高等教育自学考试计算机基础与程序
  10. 西邮Linux兴趣小组2021纳新面试题题解