DatabaseInstaller had some LSP violations, such as calling undeclared methods of the supplied Installer object, assuming that it was a WebInstaller. It was also large. So, split the web form parts of DatabaseInstaller into separate classes. We have a class hierarchy for the connect forms, and a class hierarchy for the settings forms, with a base class DatabaseForm mostly as a place to put protected helper methods. Also, have DatabaseInstaller::getConnection() return a special subclass of Status, so that we can remove many Phan type overrides. Change-Id: Ie84025f8f70b895fa6882848b9a21ba1750d60e2
23 lines
355 B
PHP
23 lines
355 B
PHP
<?php
|
|
|
|
namespace MediaWiki\Installer;
|
|
|
|
use Status;
|
|
use Wikimedia\Rdbms\Database;
|
|
|
|
/**
|
|
* @internal
|
|
*/
|
|
class ConnectionStatus extends Status {
|
|
public function __construct( Database $db = null ) {
|
|
$this->value = $db;
|
|
}
|
|
|
|
public function setDB( Database $db ) {
|
|
$this->value = $db;
|
|
}
|
|
|
|
public function getDB(): Database {
|
|
return $this->value;
|
|
}
|
|
}
|