Files
molenda.net/eeeeee/vendor/squizlabs/php_codesniffer/requirements.php
T
Sebastian Molenda ab96d82fcf init
2026-05-12 21:10:38 +02:00

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);
}
}