X-Git-Url: http://git.cyclocoop.org/?a=blobdiff_plain;f=includes%2Fparser%2FPreprocessor_DOM.php;h=b71b9d242fd6e7dbd840f990758bb455db70b844;hb=602d7901dda5492153cf90bfe12a8d005dbad0af;hp=4e359a6249ff7df4710f25c79f8210804e089d66;hpb=415b31766677e190c13322742b4e42da1157538c;p=lhc%2Fweb%2Fwiklou.git diff --git a/includes/parser/Preprocessor_DOM.php b/includes/parser/Preprocessor_DOM.php index 4e359a6249..b71b9d242f 100644 --- a/includes/parser/Preprocessor_DOM.php +++ b/includes/parser/Preprocessor_DOM.php @@ -23,9 +23,9 @@ /** * @ingroup Parser - * @codingStandardsIgnoreStart */ -class Preprocessor_DOM implements Preprocessor { +// @codingStandardsIgnoreStart Squiz.Classes.ValidClassName.NotCamelCaps +class Preprocessor_DOM extends Preprocessor { // @codingStandardsIgnoreEnd /** @@ -35,7 +35,7 @@ class Preprocessor_DOM implements Preprocessor { public $memoryLimit; - const CACHE_VERSION = 1; + const CACHE_PREFIX = 'preprocess-xml'; public function __construct( $parser ) { $this->parser = $parser; @@ -148,30 +148,11 @@ class Preprocessor_DOM implements Preprocessor { * @return PPNode_DOM */ public function preprocessToObj( $text, $flags = 0 ) { - global $wgMemc, $wgPreprocessorCacheThreshold; - - $xml = false; - $cacheable = ( $wgPreprocessorCacheThreshold !== false - && strlen( $text ) > $wgPreprocessorCacheThreshold ); - if ( $cacheable ) { - $cacheKey = wfMemcKey( 'preprocess-xml', md5( $text ), $flags ); - $cacheValue = $wgMemc->get( $cacheKey ); - if ( $cacheValue ) { - $version = substr( $cacheValue, 0, 8 ); - if ( intval( $version ) == self::CACHE_VERSION ) { - $xml = substr( $cacheValue, 8 ); - // From the cache - wfDebugLog( "Preprocessor", "Loaded preprocessor XML from memcached (key $cacheKey)" ); - } - } - if ( $xml === false ) { - $xml = $this->preprocessToXml( $text, $flags ); - $cacheValue = sprintf( "%08d", self::CACHE_VERSION ) . $xml; - $wgMemc->set( $cacheKey, $cacheValue, 86400 ); - wfDebugLog( "Preprocessor", "Saved preprocessor XML to memcached (key $cacheKey)" ); - } - } else { + + $xml = $this->cacheGetTree( $text, $flags ); + if ( $xml === false ) { $xml = $this->preprocessToXml( $text, $flags ); + $this->cacheSetTree( $text, $flags, $xml ); } // Fail if the number of elements exceeds acceptable limits @@ -179,8 +160,7 @@ class Preprocessor_DOM implements Preprocessor { $this->parser->mGeneratedPPNodeCount += substr_count( $xml, '<' ); $max = $this->parser->mOptions->getMaxGeneratedPPNodeCount(); if ( $this->parser->mGeneratedPPNodeCount > $max ) { - if ( $cacheable ) { - } + // if ( $cacheable ) { ... } throw new MWException( __METHOD__ . ': generated node count limit exceeded' ); } @@ -199,8 +179,7 @@ class Preprocessor_DOM implements Preprocessor { $obj = new PPNode_DOM( $dom->documentElement ); } - if ( $cacheable ) { - } + // if ( $cacheable ) { ... } if ( !$result ) { throw new MWException( __METHOD__ . ' generated invalid XML' ); @@ -961,8 +940,8 @@ class PPDPart { /** * An expansion frame, used as a context to expand the result of preprocessToObj() * @ingroup Parser - * @codingStandardsIgnoreStart */ +// @codingStandardsIgnoreStart Squiz.Classes.ValidClassName.NotCamelCaps class PPFrame_DOM implements PPFrame { // @codingStandardsIgnoreEnd @@ -1575,8 +1554,8 @@ class PPFrame_DOM implements PPFrame { /** * Expansion frame with template arguments * @ingroup Parser - * @codingStandardsIgnoreStart */ +// @codingStandardsIgnoreStart Squiz.Classes.ValidClassName.NotCamelCaps class PPTemplateFrame_DOM extends PPFrame_DOM { // @codingStandardsIgnoreEnd @@ -1742,8 +1721,8 @@ class PPTemplateFrame_DOM extends PPFrame_DOM { /** * Expansion frame with custom arguments * @ingroup Parser - * @codingStandardsIgnoreStart */ +// @codingStandardsIgnoreStart Squiz.Classes.ValidClassName.NotCamelCaps class PPCustomFrame_DOM extends PPFrame_DOM { // @codingStandardsIgnoreEnd @@ -1791,8 +1770,8 @@ class PPCustomFrame_DOM extends PPFrame_DOM { /** * @ingroup Parser - * @codingStandardsIgnoreStart */ +// @codingStandardsIgnoreStart Squiz.Classes.ValidClassName.NotCamelCaps class PPNode_DOM implements PPNode { // @codingStandardsIgnoreEnd