PHP DomDocument, повторное использование XSLTProcessor, это стабильно / безопасно?
Я использую функцию ниже, но не уверен, что она всегда безопасна ... Так ли это? Нет там DOM-памяти или "остаточного XSLT"?
function XSLproc_reuse($domXsl) {
static $XSLproc=NULL;
if (!$XSLproc)
$XSLproc = new XSLTProcessor();
return $XSLproc->importStylesheet($domXsl); // STABLE?
}
Там нет будущих "неожиданных побочных эффектов" на это?
PS: у меня есть некоторые странные ошибки с моей обработкой XSLT ... Итак, разместив здесь одну (из многих других) гипотез, чтобы проверить, хорошо ли это или нужно избегать. Этотболее очевидно с XPath, см. этот другой связанный вопрос.
Другой способ, чтобы ОБРАТИТЬ БОЛЬШЕ листа обработки (который я использовал в своей библиотеке), это также повторно использовать импортированный XSLT:
function XSLproc_reuse2($nameOrDomXsl='', $domXsl=NULL) {
static $XSLproc=NULL;
static $name='';
if (!$XSLproc)
$XSLproc = new XSLTProcessor();
// else reune of the already initialized $XSLproc.
if (is_object($nameOrDomXsl))
return $XSLproc->importStylesheet($nameOrDomXsl); // STABLE?
elseif ($nameOrDomXsl==$name);
return $XSLproc; // imported in the last call, STABLE?
else { // recording for future reuse:
$name = $nameOrDomXsl;
return $XSLproc->importStylesheet($domXsl);
}
}