mirror of
https://github.com/Combodo/iTop.git
synced 2026-07-10 08:46:37 +02:00
* N°4789 - Parse datamodel module.xxx.php files instead of interpreting them - refactoring all in a dedicated service first * N°4789 - fix broken setup + tests * N°4789 - replace legacy eval by module file parsing * N°4789 - handle constants and if conditional structures * N°4789 - compute boolean expressions * N°4789 - make autoselect and dependencies work as well * cleanup * N°4789 - fix BeforeWritingConfig calls during setup * N°4789 - refactor and split in ModuleDiscoveryEvaluationService + handle ModuleInstallerAPI methods calls during setup * N°4789 - PR review changes with Romain * PR review + code cleanup + added usecases and test cover * temp evaluation work * replace eval by iTop custom evaluation classes * move PhpParser/Evaluation classes in a specific namespave + composer dumpautoload * fix broken setup * fix broken setup * complete Evaluators list + autoload * cleanup useless testing resources * cleanup + replace last eval call in VariableEvaluator * fix few Evaluators code * enhance nikic evaluators + test with/without nikic lib * Evaluator fixes/enhancements + tests * bump to nikic fork temporarly * bump nikic-parser fork + use only nikic fork evaluation + cleanup itop redondant evaluators * review with Romain: use distinct whitelists in setup time/runtime + move ModuleFileParser internal logic into ModuleFileReader * PhpExpressionEvaluator used via constructor and not as a service * dumpautoload again after rebase
43 lines
1.7 KiB
PHP
43 lines
1.7 KiB
PHP
<?php
|
|
|
|
// platform_check.php @generated by Composer
|
|
|
|
$issues = array();
|
|
|
|
if (!(PHP_VERSION_ID >= 80100)) {
|
|
$issues[] = 'Your Composer dependencies require a PHP version ">= 8.1.0". You are running ' . PHP_VERSION . '.';
|
|
}
|
|
|
|
$missingExtensions = array();
|
|
extension_loaded('curl') || $missingExtensions[] = 'curl';
|
|
extension_loaded('dom') || $missingExtensions[] = 'dom';
|
|
extension_loaded('gd') || $missingExtensions[] = 'gd';
|
|
extension_loaded('iconv') || $missingExtensions[] = 'iconv';
|
|
extension_loaded('json') || $missingExtensions[] = 'json';
|
|
extension_loaded('libxml') || $missingExtensions[] = 'libxml';
|
|
extension_loaded('mysqli') || $missingExtensions[] = 'mysqli';
|
|
extension_loaded('openssl') || $missingExtensions[] = 'openssl';
|
|
extension_loaded('soap') || $missingExtensions[] = 'soap';
|
|
extension_loaded('tokenizer') || $missingExtensions[] = 'tokenizer';
|
|
extension_loaded('xml') || $missingExtensions[] = 'xml';
|
|
|
|
if ($missingExtensions) {
|
|
$issues[] = 'Your Composer dependencies require the following PHP extensions to be installed: ' . implode(', ', $missingExtensions) . '.';
|
|
}
|
|
|
|
if ($issues) {
|
|
if (!headers_sent()) {
|
|
header('HTTP/1.1 500 Internal Server Error');
|
|
}
|
|
if (!ini_get('display_errors')) {
|
|
if (PHP_SAPI === 'cli' || PHP_SAPI === 'phpdbg') {
|
|
fwrite(STDERR, 'Composer detected issues in your platform:' . PHP_EOL.PHP_EOL . implode(PHP_EOL, $issues) . PHP_EOL.PHP_EOL);
|
|
} elseif (!headers_sent()) {
|
|
echo 'Composer detected issues in your platform:' . PHP_EOL.PHP_EOL . str_replace('You are running '.PHP_VERSION.'.', '', implode(PHP_EOL, $issues)) . PHP_EOL.PHP_EOL;
|
|
}
|
|
}
|
|
throw new \RuntimeException(
|
|
'Composer detected issues in your platform: ' . implode(' ', $issues)
|
|
);
|
|
}
|