* @ingroup FileRepo
*/
class ForeignDBViaLBRepo extends LocalRepo {
- var $wiki, $dbName, $tablePrefix;
- var $fileFactory = array( 'ForeignDBFile', 'newFromTitle' );
- var $fileFromRowFactory = array( 'ForeignDBFile', 'newFromRow' );
+ /** @var string */
+ protected $wiki;
+
+ /** @var string */
+ protected $dbName;
+
+ /** @var string */
+ protected $tablePrefix;
+
+ /** @var array */
+ protected $fileFactory = [ 'ForeignDBFile', 'newFromTitle' ];
+
+ /** @var array */
+ protected $fileFromRowFactory = [ 'ForeignDBFile', 'newFromRow' ];
+
+ /** @var bool */
+ protected $hasSharedCache;
/**
- * @param $info array|null
+ * @param array|null $info
*/
function __construct( $info ) {
parent::__construct( $info );
}
/**
- * @return DatabaseBase
+ * @return IDatabase
*/
function getMasterDB() {
- return wfGetDB( DB_MASTER, array(), $this->wiki );
+ return wfGetDB( DB_MASTER, [], $this->wiki );
}
/**
- * @return DatabaseBase
+ * @return IDatabase
*/
function getSlaveDB() {
- return wfGetDB( DB_SLAVE, array(), $this->wiki );
+ return wfGetDB( DB_REPLICA, [], $this->wiki );
+ }
+
+ /**
+ * @return Closure
+ */
+ protected function getDBFactory() {
+ $wiki = $this->wiki;
+ return function( $index ) use ( $wiki ) {
+ return wfGetDB( $index, [], $wiki );
+ };
}
function hasSharedCache() {
protected function assertWritableRepo() {
throw new MWException( get_class( $this ) . ': write operations are not supported.' );
}
+
+ public function getInfo() {
+ return FileRepo::getInfo();
+ }
}