X-Git-Url: https://git.heureux-cyclage.org/?a=blobdiff_plain;f=includes%2FPHPVersionCheck.php;h=9dec95084e55dec66651950ad6dd04743bdd56e8;hb=c798981cf55224166df806f4d86b04ae6e22d8ad;hp=d11d02117b63dc570fa61679e131d97ad686d889;hpb=8a7e518da017e9345f86851e7c141276f5aa2693;p=lhc%2Fweb%2Fwiklou.git
diff --git a/includes/PHPVersionCheck.php b/includes/PHPVersionCheck.php
index d11d02117b..9dec95084e 100644
--- a/includes/PHPVersionCheck.php
+++ b/includes/PHPVersionCheck.php
@@ -25,13 +25,23 @@
/**
* Check php version and that external dependencies are installed, and
* display an informative error if either condition is not satisfied.
+ *
+ * @note Since we can't rely on anything, the minimum PHP versions and MW current
+ * version are hardcoded here
*/
function wfEntryPointCheck( $entryPoint ) {
+ $mwVersion = '1.26';
+ $minimumVersionPHP = '5.3.3';
+ $phpVersion = PHP_VERSION;
+
if ( !function_exists( 'version_compare' )
- || version_compare( PHP_VERSION, '5.3.3' ) < 0
- || !file_exists( dirname( __FILE__ ) . '/../vendor/autoload.php' )
+ || version_compare( $phpVersion, $minimumVersionPHP ) < 0
) {
- wfPHPVersionError( $entryPoint );
+ wfPHPVersionError( $entryPoint, $mwVersion, $minimumVersionPHP, $phpVersion );
+ }
+
+ if ( !file_exists( dirname( __FILE__ ) . '/../vendor/autoload.php' ) ) {
+ wfMissingVendorError( $entryPoint, $mwVersion );
}
}
@@ -49,47 +59,39 @@ function wfEntryPointCheck( $entryPoint ) {
* - api.php
* - mw-config/index.php
* - cli
- *
- * @note Since we can't rely on anything, the minimum PHP versions and MW current
- * version are hardcoded here
+ * @param string $mwVersion The number of the MediaWiki version used
+ * @param string $title HTML code to be put within an
tag
+ * @param string $shortText
+ * @param string $longText
+ * @param string $longHtml
*/
-function wfPHPVersionError( $type ) {
- $mwVersion = '1.26';
- $minimumVersionPHP = '5.3.3';
-
- $phpVersion = PHP_VERSION;
+function wfGenericError( $type, $mwVersion, $title, $shortText, $longText, $longHtml ) {
$protocol = isset( $_SERVER['SERVER_PROTOCOL'] ) ? $_SERVER['SERVER_PROTOCOL'] : 'HTTP/1.0';
- $message = "MediaWiki $mwVersion requires at least "
- . "PHP version $minimumVersionPHP, you are using PHP $phpVersion. Installing some "
- . " external dependencies (e.g. via composer) is also required.";
if ( $type == 'cli' ) {
- $finalOutput = "Error: You are missing some external dependencies or are using on older PHP version. \n"
- . "MediaWiki $mwVersion needs PHP $minimumVersionPHP or higher.\n\n"
- . "Check if you have a newer php executable with a different name, such as php5.\n\n"
- . "MediaWiki now also has some external dependencies that need to be installed\n"
- . "via composer or from a separate git repo. Please see\n"
- . "https://www.mediawiki.org/wiki/Download_from_Git#Fetch_external_libraries\n"
- . "for help on installing the required components.";
- } elseif ( $type == 'index.php' || $type == 'mw-config/index.php' ) {
- $pathinfo = pathinfo( $_SERVER['SCRIPT_NAME'] );
- if ( $type == 'mw-config/index.php' ) {
- $dirname = dirname( $pathinfo['dirname'] );
- } else {
- $dirname = $pathinfo['dirname'];
- }
- $encLogo = htmlspecialchars(
- str_replace( '//', '/', $dirname . '/' ) .
- 'resources/assets/mediawiki.png'
- );
-
+ $finalOutput = $longText;
+ } else {
header( "$protocol 500 MediaWiki configuration Error" );
- header( 'Content-type: text/html; charset=UTF-8' );
// Don't cache error pages! They cause no end of trouble...
header( 'Cache-control: none' );
header( 'Pragma: no-cache' );
- $finalOutput = <<
@@ -120,10 +122,43 @@ function wfPHPVersionError( $type ) {
MediaWiki {$mwVersion} internal error
- {$message}
+ {$shortHtml}
-
Supported PHP versions
+
{$title}
+ {$longHtml}
+
+
+
+
+HTML;
+ // Handle everything that's not index.php
+ } else {
+ // So nothing thinks this is JS or CSS
+ $finalOutput = ( $type == 'load.php' ) ? "/* $shortText */" : $shortText;
+ }
+ }
+ echo "$finalOutput\n";
+ die( 1 );
+}
+
+/**
+ * Display an error for the minimum PHP version requirement not being satisfied.
+ *
+ * @param string $type See wfGenericError
+ * @param string $mwVersion See wfGenericError
+ * @param string $minimumVersionPHP The minimum PHP version supported by MediaWiki
+ * @param string $phpVersion The current PHP version
+ */
+function wfPHPVersionError( $type, $mwVersion, $minimumVersionPHP, $phpVersion ) {
+ $shortText = "MediaWiki $mwVersion requires at least "
+ . "PHP version $minimumVersionPHP, you are using PHP $phpVersion.";
+
+ $longText = "Error: You might be using on older PHP version. \n"
+ . "MediaWiki $mwVersion needs PHP $minimumVersionPHP or higher.\n\n"
+ . "Check if you have a newer php executable with a different name, such as php5.\n\n";
+
+ $longHtml = <<upgrading your copy of PHP.
PHP versions less than 5.3.0 are no longer supported by the PHP Group and will not receive
security or bugfix updates.
@@ -134,24 +169,31 @@ function wfPHPVersionError( $type ) {
of MediaWiki from our website. See our
compatibility page
for details of which versions are compatible with prior versions of PHP.
-
- External dependencies
-
+HTML;
+ wfGenericError( $type, $mwVersion, 'Supported PHP versions', $shortText, $longText, $longHtml );
+}
+
+/**
+ * Display an error for the vendor/autoload.php file not being found.
+ *
+ * @param string $type See wfGenericError
+ * @param string $mwVersion See wfGenericError
+ */
+function wfMissingVendorError( $type, $mwVersion ) {
+ $shortText = "Installing some external dependencies (e.g. via composer) is also required.";
+
+ $longText = "Error: You are missing some external dependencies. \n"
+ . "MediaWiki now also has some external dependencies that need to be installed\n"
+ . "via composer or from a separate git repo. Please see\n"
+ . "https://www.mediawiki.org/wiki/Download_from_Git#Fetch_external_libraries\n"
+ . "for help on installing the required components.";
+
+ $longHtml = <<mediawiki.org
for help on installing the required components.
-
-
-
-
HTML;
- // Handle everything that's not index.php
- } else {
- // So nothing thinks this is JS or CSS
- $finalOutput = ( $type == 'load.php' ) ? "/* $message */" : $message;
- header( "$protocol 500 MediaWiki configuration Error" );
- }
- echo "$finalOutput\n";
- die( 1 );
+
+ wfGenericError( $type, $mwVersion, 'External dependencies', $shortText, $longText, $longHtml );
}