I have a class which is made of only static methods. I want to register the class so that XSLT engine can use it. As far I am aware XSLTProcessor::registerPHPFunctions() either registers all class and functions unless first parameter $restrict is passed and first param only takes method name in string or as array. How to register a whole class to XSLT so that all static method of a class can be accessible from xslt page.
Add a comment
|
1 Answer
Assuming you have a class named Foo, you can get an array of all the class methods with code like this:
function addClassPrefix($name) {
return "Foo::$name";
}
$names = array_map("addClassPrefix", get_class_methods("Foo"));
Note the need to add the class name as a prefix in front of each method name.
You can then simply register the whole array like this:
$proc = new XSLTProcessor();
$proc->registerPHPFunctions($names);