73 lines
2.4 KiB
PHP
73 lines
2.4 KiB
PHP
<?php
|
|
/**
|
|
* Requirements check for PHP_CodeSniffer.
|
|
*
|
|
* :WARNING:
|
|
* This file MUST stay cross-version compatible with older PHP versions (min: PHP 5.3) to allow
|
|
* for the requirements check to work correctly.
|
|
*
|
|
* The PHP 5.3 minimum is set as the previous PHPCS major (3.x) already had a PHP 5.4 minimum
|
|
* requirement and didn't take parse errors caused due to the use of namespaces into account
|
|
* in its requirements check, so running PHPCS 3.x on PHP < 5.3 would have failed with a parse
|
|
* error already anyway, so PHP 5.3 seems reasonable to keep as the minimum for this.
|
|
* :WARNING:
|
|
*
|
|
* @author Greg Sherwood <gsherwood@squiz.net>
|
|
* @author Juliette Reinders Folmer <phpcs_nospam@adviesenzo.nl>
|
|
* @copyright 2006-2023 Squiz Pty Ltd (ABN 77 084 670 600)
|
|
* @copyright 2023 PHPCSStandards and contributors
|
|
* @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/HEAD/licence.txt BSD Licence
|
|
*/
|
|
|
|
namespace PHP_CodeSniffer;
|
|
|
|
|
|
/**
|
|
* Exits if the minimum requirements of PHP_CodeSniffer are not met.
|
|
*
|
|
* @return void
|
|
*/
|
|
function checkRequirements()
|
|
{
|
|
// IMPORTANT: Must stay in sync with the value of the `PHP_CodeSniffer\Util\ExitCode::REQUIREMENTS_NOT_MET` constant!
|
|
$exitCode = 64;
|
|
|
|
// Check the PHP version.
|
|
if (PHP_VERSION_ID < 70200) {
|
|
$error = 'ERROR: PHP_CodeSniffer requires PHP version 7.2.0 or greater.' . PHP_EOL;
|
|
fwrite(STDERR, $error);
|
|
exit($exitCode);
|
|
}
|
|
|
|
$requiredExtensions = array(
|
|
'tokenizer',
|
|
'xmlwriter',
|
|
'SimpleXML',
|
|
);
|
|
$missingExtensions = array();
|
|
|
|
foreach ($requiredExtensions as $extension) {
|
|
if (extension_loaded($extension) === false) {
|
|
$missingExtensions[] = $extension;
|
|
}
|
|
}
|
|
|
|
if (empty($missingExtensions) === false) {
|
|
$last = array_pop($requiredExtensions);
|
|
$required = implode(', ', $requiredExtensions);
|
|
$required .= ' and ' . $last;
|
|
|
|
if (count($missingExtensions) === 1) {
|
|
$missing = $missingExtensions[0];
|
|
} else {
|
|
$last = array_pop($missingExtensions);
|
|
$missing = implode(', ', $missingExtensions);
|
|
$missing .= ' and ' . $last;
|
|
}
|
|
|
|
$error = 'ERROR: PHP_CodeSniffer requires the %s extensions to be enabled. Please enable %s.' . PHP_EOL;
|
|
fwrite(STDERR, sprintf($error, $required, $missing));
|
|
exit($exitCode);
|
|
}
|
|
}
|