您无法在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. 5G NGC — 会话管理模型 — 边缘业务本地分流
  2. ontological 词根词缀_英语中最常见的词缀(一)之 re
  3. 210板wince键盘驱动分析和移植
  4. 李洋疯狂C语言之有关“you are come from shanghai”逆序(二)
  5. C++|Qt最简单的http的get请求
  6. angular4获得焦点事件_深究AngularJS——如何获取input的焦点(自定义指令)
  7. iOS学习——ViewController(六)
  8. TPU原理技术与xPU
  9. linux下加载so文件
  10. layui编辑器上传图片
  11. 从苏宁电器到卡巴斯基(第二部)第09篇:我在卡巴的日子 IX
  12. 变邻域搜索(VNS)原理梳理和应用细节-附求解VRPTW问题C++代码
  13. C语言 动态内存分配
  14. windows 磁盘被写保护怎么办
  15. 日常交通工具日语词汇
  16. Shamir门限秘密共享方案 秘密分配及还原过程详解 【橘小白】
  17. CSS面试须知--关于图片
  18. Scratch课程设计(四)
  19. Python:统计正负数个数
  20. 减少AWS费用的一些边边角角

热门文章

  1. 1 WoWmapview:魔兽世界地形查看器,附带源码!(Author: ufoz)
  2. VMware 与 SmartX 超融合 I/O 路径对比与性能影响解析
  3. 单容水箱液位pid控制实验报告_单容水箱液位过程控制实验报告
  4. heidisql linux 安装_CentOS mysql GUI图形化数据库管理工具Heidisql的安装教程
  5. 如何在本地进行微信公众号的开发和调试
  6. 老师的礼物,教师说课教育培训PPT模板
  7. 【笔记】图片两种常用的存储方式 以及 如何转换通道 :B C H W 、 B H W C
  8. 如何将视频做成gif动图?
  9. 题目十:从字符串2中找出字符串1中的所有字符并按ASCII排序
  10. 四六级来源这些国外期刊杂志or网站