[ Index ] |
PHP Cross Reference of MediaWiki-1.24.0 |
[Summary view] [Print] [Text view]
1 <?php 2 /** 3 * A foreign repository with a MediaWiki database accessible via the configured LBFactory. 4 * 5 * This program is free software; you can redistribute it and/or modify 6 * it under the terms of the GNU General Public License as published by 7 * the Free Software Foundation; either version 2 of the License, or 8 * (at your option) any later version. 9 * 10 * This program is distributed in the hope that it will be useful, 11 * but WITHOUT ANY WARRANTY; without even the implied warranty of 12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 * GNU General Public License for more details. 14 * 15 * You should have received a copy of the GNU General Public License along 16 * with this program; if not, write to the Free Software Foundation, Inc., 17 * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. 18 * http://www.gnu.org/copyleft/gpl.html 19 * 20 * @file 21 * @ingroup FileRepo 22 */ 23 24 /** 25 * A foreign repository with a MediaWiki database accessible via the configured LBFactory 26 * 27 * @ingroup FileRepo 28 */ 29 class ForeignDBViaLBRepo extends LocalRepo { 30 /** @var string */ 31 protected $wiki; 32 33 /** @var string */ 34 protected $dbName; 35 36 /** @var string */ 37 protected $tablePrefix; 38 39 /** @var array */ 40 protected $fileFactory = array( 'ForeignDBFile', 'newFromTitle' ); 41 42 /** @var array */ 43 protected $fileFromRowFactory = array( 'ForeignDBFile', 'newFromRow' ); 44 45 /** 46 * @param array|null $info 47 */ 48 function __construct( $info ) { 49 parent::__construct( $info ); 50 $this->wiki = $info['wiki']; 51 list( $this->dbName, $this->tablePrefix ) = wfSplitWikiID( $this->wiki ); 52 $this->hasSharedCache = $info['hasSharedCache']; 53 } 54 55 /** 56 * @return DatabaseBase 57 */ 58 function getMasterDB() { 59 return wfGetDB( DB_MASTER, array(), $this->wiki ); 60 } 61 62 /** 63 * @return DatabaseBase 64 */ 65 function getSlaveDB() { 66 return wfGetDB( DB_SLAVE, array(), $this->wiki ); 67 } 68 69 function hasSharedCache() { 70 return $this->hasSharedCache; 71 } 72 73 /** 74 * Get a key on the primary cache for this repository. 75 * Returns false if the repository's cache is not accessible at this site. 76 * The parameters are the parts of the key, as for wfMemcKey(). 77 * @return bool|string 78 */ 79 function getSharedCacheKey( /*...*/ ) { 80 if ( $this->hasSharedCache() ) { 81 $args = func_get_args(); 82 array_unshift( $args, $this->wiki ); 83 84 return implode( ':', $args ); 85 } else { 86 return false; 87 } 88 } 89 90 protected function assertWritableRepo() { 91 throw new MWException( get_class( $this ) . ': write operations are not supported.' ); 92 } 93 94 public function getInfo() { 95 return FileRepo::getInfo(); 96 } 97 }
title
Description
Body
title
Description
Body
title
Description
Body
title
Body
Generated: Fri Nov 28 14:03:12 2014 | Cross-referenced by PHPXref 0.7.1 |