选择性函数寄存器与xslt PHP

时间:2013-06-27 15:53:44

标签: php xml xslt

我有一个仅由静态方法组成的类。我想注册该类,以便XSLT引擎可以使用它。到目前为止,我知道XSLTProcessor::registerPHPFunctions()要么注册所有类和函数,除非传递第一个参数$restrict并且第一个参数只接受字符串或数组中的方法名称。如何将整个类注册到XSLT,以便可以从xslt页面访问类的所有静态方法。

1 个答案:

答案 0 :(得分:2)

假设您有一个名为Foo的类,您可以使用以下代码获取所有类方法的数组:

function addClassPrefix($name) {
  return "Foo::$name";
}
$names = array_map("addClassPrefix", get_class_methods("Foo"));

请注意,需要在每个方法名称前添加类名作为前缀。

然后您可以像这样简单地注册整个数组:

$proc = new XSLTProcessor();
$proc->registerPHPFunctions($names);