MediaWiki master
MysqlConnectForm.php
Go to the documentation of this file.
1<?php
2
3namespace MediaWiki\Installer;
4
7
15 public function getHtml() {
16 return $this->getTextBox(
17 'wgDBserver',
18 'config-db-host',
19 [],
20 $this->webInstaller->getHelpBox( 'config-db-host-help' )
21 ) .
22 $this->getCheckBox( 'wgDBssl', 'config-db-ssl' ) .
23 "<span class=\"cdx-card\"><span class=\"cdx-card__text\">" .
25 'span',
26 [ 'class' => 'cdx-card__text__title' ],
27 wfMessage( 'config-db-wiki-settings' )->text()
28 ) .
29 "<span class=\"cdx-card__text__description\">" .
30 $this->getTextBox( 'wgDBname', 'config-db-name', [ 'dir' => 'ltr' ],
31 $this->webInstaller->getHelpBox( 'config-db-name-help' ) ) .
32 $this->getTextBox( 'wgDBprefix', 'config-db-prefix', [ 'dir' => 'ltr' ],
33 $this->webInstaller->getHelpBox( 'config-db-prefix-help' ) ) .
34 "</span></span></span>" .
35 $this->getInstallUserBox();
36 }
37
39 public function submit() {
40 // Get variables from the request.
41 $newValues = $this->setVarsFromRequest( [ 'wgDBserver', 'wgDBname', 'wgDBprefix', 'wgDBssl' ] );
42
43 // Validate them.
44 $status = Status::newGood();
45 if ( ( $newValues['wgDBserver'] ?? '' ) === '' ) {
46 $status->fatal( 'config-missing-db-host' );
47 }
48 if ( ( $newValues['wgDBname'] ?? '' ) === '' ) {
49 $status->fatal( 'config-missing-db-name' );
50 } elseif ( !preg_match( '/^[a-z0-9+_-]+$/i', $newValues['wgDBname'] ) ) {
51 $status->fatal( 'config-invalid-db-name', $newValues['wgDBname'] );
52 }
53 if ( !preg_match( '/^[a-z0-9_-]*$/i', $newValues['wgDBprefix'] ) ) {
54 $status->fatal( 'config-invalid-db-prefix', $newValues['wgDBprefix'] );
55 }
56 if ( !$status->isOK() ) {
57 return $status;
58 }
59
60 // Submit user box
61 $status = $this->submitInstallUserBox();
62 if ( !$status->isOK() ) {
63 return $status;
64 }
65
66 // Try to connect
67 $status = $this->dbInstaller->getConnection( DatabaseInstaller::CONN_CREATE_DATABASE );
68 if ( !$status->isOK() ) {
69 return $status;
70 }
71
72 // Check version
73 return MysqlInstaller::meetsMinimumRequirement( $status->getDB() );
74 }
75}
wfMessage( $key,... $params)
This is the function for getting translated interface messages.
This class is a collection of static functions that serve two purposes:
Definition Html.php:43
getInstallUserBox()
Get a standard install-user fieldset.
submitInstallUserBox()
Submit a standard install user fieldset.
getCheckBox( $var, $label, $attribs=[], $helpData="")
Get a labelled checkbox to configure a local boolean variable.
setVarsFromRequest( $varNames)
Convenience function to set variables based on form data.
getTextBox( $var, $label, $attribs=[], $helpData="")
Get a labelled text box to configure a local variable.
submit()
Set variables based on the request array, assuming it was submitted via the form returned by getConne...
static meetsMinimumRequirement(IDatabase $conn)
Whether the provided version meets the necessary requirements for this type.Status 1....
Generic operation result class Has warning/error list, boolean status and arbitrary value.
Definition Status.php:44
const CONN_CREATE_DATABASE
A connection for creating DBs, suitable for pre-installation.
element(SerializerNode $parent, SerializerNode $node, $contents)