PHP DomDocument, reutilização de XSLTProcessor, é estável / seguro?
Eu estou usando a função abaixo, mas não tenho certeza sobre isso é sempre seguro ... É? Nenhuma memória DOM ou "XSLT residual" lá?
function XSLproc_reuse($domXsl) {
static $XSLproc=NULL;
if (!$XSLproc)
$XSLproc = new XSLTProcessor();
return $XSLproc->importStylesheet($domXsl); // STABLE?
}
Não há futuros "efeitos colaterais de surpresa" sobre ele?
PS: Eu tenho alguns bugs estranhos com o meu processamento XSLT ... Então, postando uma (de muitas outras) hipóteses aqui, para verificar se ok ou deve ser evitado. esteé mais evidente com o XPath, veja esta outra questão relacionada.
Outra maneira, para REUTILIZAR MAIS folha de processamento (que eu estava usando na minha biblioteca), é reutilizar também o XSLT importado:
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);
}
}