* (bug 30607) Special:ListFiles can now show old versions of files. Additionally
Special:AllMyUploads was introduced so the user can get a list of all things
they have ever uploaded, even if it was subsequently overriden.
+* Introduced Special:MyFiles and Special:AllMyFiles as an alias for Special:MyUploads
+ and Special:AllMyUploads respectively.
=== Bug fixes in 1.22 ===
* Disable Special:PasswordReset when $wgEnableEmail is false. Previously one
return new DBConnRef( $this, $this->getConnection( $db, $groups, $wiki ) );
}
+ /**
+ * Get a database connection handle reference without connecting yet
+ *
+ * The handle's methods wrap simply wrap those of a DatabaseBase handle
+ *
+ * @see LoadBalancer::getConnection() for parameter information
+ *
+ * @param integer $db
+ * @param mixed $groups
+ * @param string $wiki
+ * @return DBConnRef
+ */
+ public function getLazyConnectionRef( $db, $groups = array(), $wiki = false ) {
+ return new DBConnRef( $this, array( $db, $groups, $wiki ) );
+ }
+
/**
* Open a connection to the server given by the specified index
* Index must be an actual index into the array.
/**
* Helper class to handle automatically marking connectons as reusable (via RAII pattern)
+ * as well handling deferring the actual network connection until the handle is used
*
* @ingroup Database
* @since 1.22
class DBConnRef implements IDatabase {
/** @var LoadBalancer */
protected $lb;
- /** @var DatabaseBase */
+ /** @var DatabaseBase|null */
protected $conn;
+ /** @var Array|null */
+ protected $params;
/**
* @param $lb LoadBalancer
- * @param $conn DatabaseBase
+ * @param $conn DatabaseBase|array Connection or (server index, group, wiki ID) array
*/
- public function __construct( LoadBalancer $lb, DatabaseBase $conn ) {
+ public function __construct( LoadBalancer $lb, $conn ) {
$this->lb = $lb;
- $this->conn = $conn;
+ if ( $conn instanceof DatabaseBase ) {
+ $this->conn = $conn;
+ } else {
+ $this->params = $conn;
+ }
}
public function __call( $name, $arguments ) {
+ if ( $this->conn === null ) {
+ list( $db, $groups, $wiki ) = $this->params;
+ $this->conn = $this->lb->getConnection( $db, $groups, $wiki );
+ }
return call_user_func_array( array( $this->conn, $name ), $arguments );
}
function __destruct() {
- $this->lb->reuseConnection( $this->conn );
+ if ( $this->conn !== null ) {
+ $this->lb->reuseConnection( $this->conn );
+ }
}
}
$specialPageAliases = array(
'Activeusers' => array( 'ActiveUsers' ),
'Allmessages' => array( 'AllMessages' ),
- 'AllMyUploads' => array( 'AllMyUploads' ),
+ 'AllMyUploads' => array( 'AllMyUploads', 'AllMyFiles' ),
'Allpages' => array( 'AllPages' ),
'Ancientpages' => array( 'AncientPages' ),
'Badtitle' => array( 'Badtitle' ),
'Mycontributions' => array( 'MyContributions' ),
'Mypage' => array( 'MyPage' ),
'Mytalk' => array( 'MyTalk' ),
- 'Myuploads' => array( 'MyUploads' ),
+ 'Myuploads' => array( 'MyUploads', 'MyFiles' ),
'Newimages' => array( 'NewFiles', 'NewImages' ),
'Newpages' => array( 'NewPages' ),
'PagesWithProp' => array( 'PagesWithProp', 'Pageswithprop', 'PagesByProp', 'Pagesbyprop' ),