Добрый день ... Может кто знает как вызвать метод класса из xslt??? Как вызывать функцию - знаю ..., как вызвать метод???
Как следствие, XSLT-документы не содержат программного кода каких-либо методов. Нельзя вызвать то, чего нет.
Хотите крутить методы - извольте их иметь статикой: Код (PHP): class Test { static public function blabla(int $num) {} } Код (Text): <xsl:value-of select="php:function('Test::blabla',1)" /> PS: И кстати, неймспейсы тоже никто не отменял =) Всё в ваших руках! Удачи.
эх ..., из трех ответивших ..., только одно по делу ..., остальное словоблудство ... Атас!!! ____ AndreJM - Благодарю ... Попробую поделать так ... [vs] и sobachnik - не понимаете смысла вопроса - не пытайтесь отвечать ... Добавлено спустя 2 минуты 50 секунд: А вызывает он только статический метод???
Код (Text): XSLTProcessor::registerPHPFunctions — Включает возможность использовать PHP функции в качестве функций XSLT Боюсь Вам не удастся послать сообщение не статическому методу класса если его экземпляра не существует, в то время как registerPHPFunctions регистрирует исключительно функции. Если я правильно понял, то вы играетесь с шаблонами XSL. Да, функциональность XSL довольна интересна, и верстальщику подобных шаблонов можно даже не задумываться о php-реализации, однако я не совсем понимаю, зачем вы используя в качестве шаблонов XSL пытаетесь верстальщику навязать php.. Это же абсурд на мой взгляд. XSL и есть для того, чтобы разделить ответственность, PHP-кодер пишет код и отдает данные, XSL-кодер наводит красоту (манипулируя полученными данными). Зачем XSL-кодеру еще и вникать в Ваш php? =)
Дело конечно Ваше, однако манипуляции данными средствами XSL теряют свою необходимость, а значит и вовсе не нужен XSL шаблон, а значит и трансформировать незачем =)
Очень спорно ..., особенно если использовать XML и XSLT как некий вариант предварительного кэширования данных ...