X-Git-Url: http://git.cyclocoop.org/?a=blobdiff_plain;f=includes%2Fresourceloader%2FResourceLoaderWikiModule.php;h=796dc20d87cbfe0c4253b2f2c9c47eaca6f76412;hb=515839fdad497581269311b74a01316601ff21a5;hp=0023de2757eb3858281386a874a712e077ce10a9;hpb=4f21e6be661f7305abc223bb31600970a3fb5326;p=lhc%2Fweb%2Fwiklou.git diff --git a/includes/resourceloader/ResourceLoaderWikiModule.php b/includes/resourceloader/ResourceLoaderWikiModule.php index 0023de2757..796dc20d87 100644 --- a/includes/resourceloader/ResourceLoaderWikiModule.php +++ b/includes/resourceloader/ResourceLoaderWikiModule.php @@ -1,6 +1,6 @@ $option ) { switch ( $member ) { case 'position': - $this->isPositionDefined = true; - // Don't break since we need the member set as well case 'styles': case 'scripts': case 'group': @@ -101,18 +99,18 @@ class ResourceLoaderWikiModule extends ResourceLoaderModule { */ protected function getPages( ResourceLoaderContext $context ) { $config = $this->getConfig(); - $pages = array(); + $pages = []; // Filter out pages from origins not allowed by the current wiki configuration. if ( $config->get( 'UseSiteJs' ) ) { foreach ( $this->scripts as $script ) { - $pages[$script] = array( 'type' => 'script' ); + $pages[$script] = [ 'type' => 'script' ]; } } if ( $config->get( 'UseSiteCss' ) ) { foreach ( $this->styles as $style ) { - $pages[$style] = array( 'type' => 'style' ); + $pages[$style] = [ 'type' => 'style' ]; } } @@ -201,7 +199,7 @@ class ResourceLoaderWikiModule extends ResourceLoaderModule { * @return array */ public function getStyles( ResourceLoaderContext $context ) { - $styles = array(); + $styles = []; foreach ( $this->getPages( $context ) as $titleText => $options ) { if ( $options['type'] !== 'style' ) { continue; @@ -214,9 +212,10 @@ class ResourceLoaderWikiModule extends ResourceLoaderModule { if ( $this->getFlip( $context ) ) { $style = CSSJanus::transform( $style, true, false ); } - $style = CSSMin::remap( $style, false, $this->getConfig()->get( 'ScriptPath' ), true ); + $style = MemoizedCallable::call( 'CSSMin::remap', + [ $style, false, $this->getConfig()->get( 'ScriptPath' ), true ] ); if ( !isset( $styles[$media] ) ) { - $styles[$media] = array(); + $styles[$media] = []; } $style = ResourceLoader::makeComment( $titleText ) . $style; $styles[$media][] = $style; @@ -244,11 +243,11 @@ class ResourceLoaderWikiModule extends ResourceLoaderModule { */ public function getDefinitionSummary( ResourceLoaderContext $context ) { $summary = parent::getDefinitionSummary( $context ); - $summary[] = array( + $summary[] = [ 'pages' => $this->getPages( $context ), // Includes SHA1 of content 'titleInfo' => $this->getTitleInfo( $context ), - ); + ]; return $summary; } @@ -285,34 +284,36 @@ class ResourceLoaderWikiModule extends ResourceLoaderModule { $dbr = $this->getDB(); if ( !$dbr ) { // We're dealing with a subclass that doesn't have a DB - return array(); + return []; } $pages = $this->getPages( $context ); $key = implode( '|', array_keys( $pages ) ); if ( !isset( $this->titleInfo[$key] ) ) { - $this->titleInfo[$key] = array(); + $this->titleInfo[$key] = []; $batch = new LinkBatch; foreach ( $pages as $titleText => $options ) { $batch->addObj( Title::newFromText( $titleText ) ); } if ( !$batch->isEmpty() ) { - $res = $dbr->select( array( 'page', 'revision' ), - array( 'page_namespace', 'page_title', 'rev_len', 'rev_sha1' ), + $res = $dbr->select( [ 'page', 'revision' ], + // Include page_touched to allow purging if cache is poisoned (T117587, T113916) + [ 'page_namespace', 'page_title', 'page_touched', 'rev_len', 'rev_sha1' ], $batch->constructSet( 'page', $dbr ), __METHOD__, - array(), - array( 'revision' => array( 'INNER JOIN', array( 'page_latest=rev_id' ) ) ) + [], + [ 'revision' => [ 'INNER JOIN', [ 'page_latest=rev_id' ] ] ] ); foreach ( $res as $row ) { // Avoid including ids or timestamps of revision/page tables so // that versions are not wasted $title = Title::makeTitle( $row->page_namespace, $row->page_title ); - $this->titleInfo[$key][$title->getPrefixedText()] = array( + $this->titleInfo[$key][$title->getPrefixedText()] = [ 'rev_len' => $row->rev_len, 'rev_sha1' => $row->rev_sha1, - ); + 'page_touched' => $row->page_touched, + ]; } } }