Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
23 commits
Select commit Hold shift + click to select a range
1bc14f9
N°4789 - Parse datamodel module.xxx.php files instead of interpreting…
odain-cbd Aug 20, 2025
07d7995
N°4789 - fix broken setup + tests
odain-cbd Aug 20, 2025
6d80b2e
N°4789 - replace legacy eval by module file parsing
odain-cbd Aug 25, 2025
788b23a
N°4789 - handle constants and if conditional structures
odain-cbd Aug 25, 2025
8af748b
N°4789 - compute boolean expressions
odain-cbd Aug 25, 2025
812e24b
N°4789 - make autoselect and dependencies work as well
odain-cbd Aug 26, 2025
79e1572
cleanup
odain-cbd Aug 26, 2025
f47309f
N°4789 - fix BeforeWritingConfig calls during setup
odain-cbd Aug 26, 2025
61c2b71
N°4789 - refactor and split in ModuleDiscoveryEvaluationService + han…
odain-cbd Aug 27, 2025
08c77f8
N°4789 - PR review changes with Romain
odain-cbd Aug 27, 2025
a587bd6
PR review + code cleanup + added usecases and test cover
odain-cbd Sep 1, 2025
f7b5091
temp evaluation work
odain-cbd Sep 2, 2025
1962cd7
replace eval by iTop custom evaluation classes
odain-cbd Sep 2, 2025
ac2b787
move PhpParser/Evaluation classes in a specific namespave + composer …
odain-cbd Sep 2, 2025
a0a8678
fix broken setup
odain-cbd Sep 2, 2025
794a9af
fix broken setup
odain-cbd Sep 2, 2025
c14ac90
complete Evaluators list + autoload
odain-cbd Sep 3, 2025
cdbe331
cleanup useless testing resources
odain-cbd Sep 3, 2025
86fe9d6
cleanup + replace last eval call in VariableEvaluator
odain-cbd Sep 3, 2025
af79026
fix few Evaluators code
odain-cbd Sep 4, 2025
11f142b
enhance nikic evaluators + test with/without nikic lib
odain-cbd Sep 4, 2025
7e7b587
Evaluator fixes/enhancements + tests
odain-cbd Sep 5, 2025
9872702
revert nikic enhancements and keep them for later + finalize work and…
odain-cbd Sep 5, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
16 changes: 2 additions & 14 deletions core/config.class.inc.php
Original file line number Diff line number Diff line change
Expand Up @@ -2856,20 +2856,8 @@ public function UpdateIncludes($sModulesDir, $aSelectedModules = null)
}
}
}
if (isset($aModuleInfo['installer']))
{
$sModuleInstallerClass = $aModuleInfo['installer'];
if (!class_exists($sModuleInstallerClass))
{
throw new Exception("Wrong installer class: '$sModuleInstallerClass' is not a PHP class - Module: ".$aModuleInfo['label']);
}
if (!is_subclass_of($sModuleInstallerClass, 'ModuleInstallerAPI'))
{
throw new Exception("Wrong installer class: '$sModuleInstallerClass' is not derived from 'ModuleInstallerAPI' - Module: ".$aModuleInfo['label']);
}
$aCallSpec = array($sModuleInstallerClass, 'BeforeWritingConfig');
call_user_func_array($aCallSpec, array($this));
}

RunTimeEnvironment::CallInstallerHandler($aModuleInfo, "BeforeWritingConfig", [$this]);
}
}
$this->SetAddOns($aAddOns);
Expand Down
5 changes: 4 additions & 1 deletion lib/autoload.php
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,10 @@
echo $err;
}
}
throw new RuntimeException($err);
trigger_error(
$err,
E_USER_ERROR
);
}

require_once __DIR__ . '/composer/autoload_real.php';
Expand Down
38 changes: 38 additions & 0 deletions lib/composer/autoload_classmap.php
Original file line number Diff line number Diff line change
Expand Up @@ -469,6 +469,44 @@
'Combodo\\iTop\\Form\\Validator\\NotEmptyExtKeyValidator' => $baseDir . '/sources/Form/Validator/NotEmptyExtKeyValidator.php',
'Combodo\\iTop\\Form\\Validator\\SelectObjectValidator' => $baseDir . '/sources/Form/Validator/SelectObjectValidator.php',
'Combodo\\iTop\\Kernel' => $baseDir . '/sources/Kernel.php',
'Combodo\\iTop\\PhpParser\\Evaluation\\AbstractExprEvaluator' => $baseDir . '/sources/PhpParser/Evaluation/AbstractExprEvaluator.php',
'Combodo\\iTop\\PhpParser\\Evaluation\\ArrayDimFetchEvaluator' => $baseDir . '/sources/PhpParser/Evaluation/ArrayDimFetchEvaluator.php',
'Combodo\\iTop\\PhpParser\\Evaluation\\ArrayEvaluator' => $baseDir . '/sources/PhpParser/Evaluation/ArrayEvaluator.php',
'Combodo\\iTop\\PhpParser\\Evaluation\\BinaryOpEvaluator' => $baseDir . '/sources/PhpParser/Evaluation/BinaryOpEvaluator.php',
'Combodo\\iTop\\PhpParser\\Evaluation\\BitwiseAndEvaluator' => $baseDir . '/sources/PhpParser/Evaluation/BitwiseAndEvaluator.php',
'Combodo\\iTop\\PhpParser\\Evaluation\\BitwiseNotEvaluator' => $baseDir . '/sources/PhpParser/Evaluation/BitwiseNotEvaluator.php',
'Combodo\\iTop\\PhpParser\\Evaluation\\BitwiseOrEvaluator' => $baseDir . '/sources/PhpParser/Evaluation/BitwiseOrEvaluator.php',
'Combodo\\iTop\\PhpParser\\Evaluation\\BitwiseXorEvaluator' => $baseDir . '/sources/PhpParser/Evaluation/BitwiseXorEvaluator.php',
'Combodo\\iTop\\PhpParser\\Evaluation\\BooleanAndEvaluator' => $baseDir . '/sources/PhpParser/Evaluation/BooleanAndEvaluator.php',
'Combodo\\iTop\\PhpParser\\Evaluation\\BooleanNotEvaluator' => $baseDir . '/sources/PhpParser/Evaluation/BooleanNotEvaluator.php',
'Combodo\\iTop\\PhpParser\\Evaluation\\BooleanOrEvaluator' => $baseDir . '/sources/PhpParser/Evaluation/BooleanOrEvaluator.php',
'Combodo\\iTop\\PhpParser\\Evaluation\\CastEvaluator' => $baseDir . '/sources/PhpParser/Evaluation/CastEvaluator.php',
'Combodo\\iTop\\PhpParser\\Evaluation\\ClassConstFetchEvaluator' => $baseDir . '/sources/PhpParser/Evaluation/ClassConstFetchEvaluator.php',
'Combodo\\iTop\\PhpParser\\Evaluation\\CoalesceEvaluator' => $baseDir . '/sources/PhpParser/Evaluation/CoalesceEvaluator.php',
'Combodo\\iTop\\PhpParser\\Evaluation\\ConcatEvaluator' => $baseDir . '/sources/PhpParser/Evaluation/ConcatEvaluator.php',
'Combodo\\iTop\\PhpParser\\Evaluation\\ConstFetchEvaluator' => $baseDir . '/sources/PhpParser/Evaluation/ConstFetchEvaluator.php',
'Combodo\\iTop\\PhpParser\\Evaluation\\EqualEvaluator' => $baseDir . '/sources/PhpParser/Evaluation/EqualEvaluator.php',
'Combodo\\iTop\\PhpParser\\Evaluation\\FuncCallEvaluator' => $baseDir . '/sources/PhpParser/Evaluation/FuncCallEvaluator.php',
'Combodo\\iTop\\PhpParser\\Evaluation\\GreaterEvaluator' => $baseDir . '/sources/PhpParser/Evaluation/GreaterEvaluator.php',
'Combodo\\iTop\\PhpParser\\Evaluation\\GreaterOrEqualEvaluator' => $baseDir . '/sources/PhpParser/Evaluation/GreaterOrEqualEvaluator.php',
'Combodo\\iTop\\PhpParser\\Evaluation\\IssetEvaluator' => $baseDir . '/sources/PhpParser/Evaluation/IssetEvaluator.php',
'Combodo\\iTop\\PhpParser\\Evaluation\\MethodCallEvaluator' => $baseDir . '/sources/PhpParser/Evaluation/MethodCallEvaluator.php',
'Combodo\\iTop\\PhpParser\\Evaluation\\ModEvaluator' => $baseDir . '/sources/PhpParser/Evaluation/ModEvaluator.php',
'Combodo\\iTop\\PhpParser\\Evaluation\\MulEvaluator' => $baseDir . '/sources/PhpParser/Evaluation/MulEvaluator.php',
'Combodo\\iTop\\PhpParser\\Evaluation\\NotEqualEvaluator' => $baseDir . '/sources/PhpParser/Evaluation/NotEqualEvaluator.php',
'Combodo\\iTop\\PhpParser\\Evaluation\\NullsafeMethodCallEvaluator' => $baseDir . '/sources/PhpParser/Evaluation/NullsafeMethodCallEvaluator.php',
'Combodo\\iTop\\PhpParser\\Evaluation\\NullsafePropertyFetchEvaluator' => $baseDir . '/sources/PhpParser/Evaluation/NullsafePropertyFetchEvaluator.php',
'Combodo\\iTop\\PhpParser\\Evaluation\\PhpExpressionEvaluator' => $baseDir . '/sources/PhpParser/Evaluation/PhpExpressionEvaluator.php',
'Combodo\\iTop\\PhpParser\\Evaluation\\PropertyFetchEvaluator' => $baseDir . '/sources/PhpParser/Evaluation/PropertyFetchEvaluator.php',
'Combodo\\iTop\\PhpParser\\Evaluation\\SmallerEvaluator' => $baseDir . '/sources/PhpParser/Evaluation/SmallerEvaluator.php',
'Combodo\\iTop\\PhpParser\\Evaluation\\SmallerOrEqualEvaluator' => $baseDir . '/sources/PhpParser/Evaluation/SmallerOrEqualEvaluator.php',
'Combodo\\iTop\\PhpParser\\Evaluation\\StaticCallEvaluator' => $baseDir . '/sources/PhpParser/Evaluation/StaticCallEvaluator.php',
'Combodo\\iTop\\PhpParser\\Evaluation\\StaticPropertyFetchEvaluator' => $baseDir . '/sources/PhpParser/Evaluation/StaticPropertyFetchEvaluator.php',
'Combodo\\iTop\\PhpParser\\Evaluation\\TernaryEvaluator' => $baseDir . '/sources/PhpParser/Evaluation/TernaryEvaluator.php',
'Combodo\\iTop\\PhpParser\\Evaluation\\UnaryMinusEvaluator' => $baseDir . '/sources/PhpParser/Evaluation/UnaryMinusEvaluator.php',
'Combodo\\iTop\\PhpParser\\Evaluation\\UnaryPlusEvaluator' => $baseDir . '/sources/PhpParser/Evaluation/UnaryPlusEvaluator.php',
'Combodo\\iTop\\PhpParser\\Evaluation\\VariableEvaluator' => $baseDir . '/sources/PhpParser/Evaluation/VariableEvaluator.php',
'Combodo\\iTop\\PhpParser\\Evaluation\\iExprEvaluator' => $baseDir . '/sources/PhpParser/Evaluation/iExprEvaluator.php',
'Combodo\\iTop\\Renderer\\BlockRenderer' => $baseDir . '/sources/Renderer/BlockRenderer.php',
'Combodo\\iTop\\Renderer\\Bootstrap\\BsFieldRendererMappings' => $baseDir . '/sources/Renderer/Bootstrap/BsFieldRendererMappings.php',
'Combodo\\iTop\\Renderer\\Bootstrap\\BsFormRenderer' => $baseDir . '/sources/Renderer/Bootstrap/BsFormRenderer.php',
Expand Down
2 changes: 1 addition & 1 deletion lib/composer/autoload_psr4.php
Original file line number Diff line number Diff line change
Expand Up @@ -56,7 +56,7 @@
'Psr\\Cache\\' => array($vendorDir . '/psr/cache/src'),
'PhpParser\\' => array($vendorDir . '/nikic/php-parser/lib/PhpParser'),
'Pelago\\Emogrifier\\' => array($vendorDir . '/pelago/emogrifier/src'),
'League\\OAuth2\\Client\\' => array($vendorDir . '/league/oauth2-google/src', $vendorDir . '/league/oauth2-client/src'),
'League\\OAuth2\\Client\\' => array($vendorDir . '/league/oauth2-client/src', $vendorDir . '/league/oauth2-google/src'),
'Laminas\\Validator\\' => array($vendorDir . '/laminas/laminas-validator/src'),
'Laminas\\Stdlib\\' => array($vendorDir . '/laminas/laminas-stdlib/src'),
'Laminas\\ServiceManager\\' => array($vendorDir . '/laminas/laminas-servicemanager/src'),
Expand Down
42 changes: 40 additions & 2 deletions lib/composer/autoload_static.php
Original file line number Diff line number Diff line change
Expand Up @@ -317,8 +317,8 @@ class ComposerStaticInit7f81b4a2a468a061c306af5e447a9a9f
),
'League\\OAuth2\\Client\\' =>
array (
0 => __DIR__ . '/..' . '/league/oauth2-google/src',
1 => __DIR__ . '/..' . '/league/oauth2-client/src',
0 => __DIR__ . '/..' . '/league/oauth2-client/src',
1 => __DIR__ . '/..' . '/league/oauth2-google/src',
),
'Laminas\\Validator\\' =>
array (
Expand Down Expand Up @@ -847,6 +847,44 @@ class ComposerStaticInit7f81b4a2a468a061c306af5e447a9a9f
'Combodo\\iTop\\Form\\Validator\\NotEmptyExtKeyValidator' => __DIR__ . '/../..' . '/sources/Form/Validator/NotEmptyExtKeyValidator.php',
'Combodo\\iTop\\Form\\Validator\\SelectObjectValidator' => __DIR__ . '/../..' . '/sources/Form/Validator/SelectObjectValidator.php',
'Combodo\\iTop\\Kernel' => __DIR__ . '/../..' . '/sources/Kernel.php',
'Combodo\\iTop\\PhpParser\\Evaluation\\AbstractExprEvaluator' => __DIR__ . '/../..' . '/sources/PhpParser/Evaluation/AbstractExprEvaluator.php',
'Combodo\\iTop\\PhpParser\\Evaluation\\ArrayDimFetchEvaluator' => __DIR__ . '/../..' . '/sources/PhpParser/Evaluation/ArrayDimFetchEvaluator.php',
'Combodo\\iTop\\PhpParser\\Evaluation\\ArrayEvaluator' => __DIR__ . '/../..' . '/sources/PhpParser/Evaluation/ArrayEvaluator.php',
'Combodo\\iTop\\PhpParser\\Evaluation\\BinaryOpEvaluator' => __DIR__ . '/../..' . '/sources/PhpParser/Evaluation/BinaryOpEvaluator.php',
'Combodo\\iTop\\PhpParser\\Evaluation\\BitwiseAndEvaluator' => __DIR__ . '/../..' . '/sources/PhpParser/Evaluation/BitwiseAndEvaluator.php',
'Combodo\\iTop\\PhpParser\\Evaluation\\BitwiseNotEvaluator' => __DIR__ . '/../..' . '/sources/PhpParser/Evaluation/BitwiseNotEvaluator.php',
'Combodo\\iTop\\PhpParser\\Evaluation\\BitwiseOrEvaluator' => __DIR__ . '/../..' . '/sources/PhpParser/Evaluation/BitwiseOrEvaluator.php',
'Combodo\\iTop\\PhpParser\\Evaluation\\BitwiseXorEvaluator' => __DIR__ . '/../..' . '/sources/PhpParser/Evaluation/BitwiseXorEvaluator.php',
'Combodo\\iTop\\PhpParser\\Evaluation\\BooleanAndEvaluator' => __DIR__ . '/../..' . '/sources/PhpParser/Evaluation/BooleanAndEvaluator.php',
'Combodo\\iTop\\PhpParser\\Evaluation\\BooleanNotEvaluator' => __DIR__ . '/../..' . '/sources/PhpParser/Evaluation/BooleanNotEvaluator.php',
'Combodo\\iTop\\PhpParser\\Evaluation\\BooleanOrEvaluator' => __DIR__ . '/../..' . '/sources/PhpParser/Evaluation/BooleanOrEvaluator.php',
'Combodo\\iTop\\PhpParser\\Evaluation\\CastEvaluator' => __DIR__ . '/../..' . '/sources/PhpParser/Evaluation/CastEvaluator.php',
'Combodo\\iTop\\PhpParser\\Evaluation\\ClassConstFetchEvaluator' => __DIR__ . '/../..' . '/sources/PhpParser/Evaluation/ClassConstFetchEvaluator.php',
'Combodo\\iTop\\PhpParser\\Evaluation\\CoalesceEvaluator' => __DIR__ . '/../..' . '/sources/PhpParser/Evaluation/CoalesceEvaluator.php',
'Combodo\\iTop\\PhpParser\\Evaluation\\ConcatEvaluator' => __DIR__ . '/../..' . '/sources/PhpParser/Evaluation/ConcatEvaluator.php',
'Combodo\\iTop\\PhpParser\\Evaluation\\ConstFetchEvaluator' => __DIR__ . '/../..' . '/sources/PhpParser/Evaluation/ConstFetchEvaluator.php',
'Combodo\\iTop\\PhpParser\\Evaluation\\EqualEvaluator' => __DIR__ . '/../..' . '/sources/PhpParser/Evaluation/EqualEvaluator.php',
'Combodo\\iTop\\PhpParser\\Evaluation\\FuncCallEvaluator' => __DIR__ . '/../..' . '/sources/PhpParser/Evaluation/FuncCallEvaluator.php',
'Combodo\\iTop\\PhpParser\\Evaluation\\GreaterEvaluator' => __DIR__ . '/../..' . '/sources/PhpParser/Evaluation/GreaterEvaluator.php',
'Combodo\\iTop\\PhpParser\\Evaluation\\GreaterOrEqualEvaluator' => __DIR__ . '/../..' . '/sources/PhpParser/Evaluation/GreaterOrEqualEvaluator.php',
'Combodo\\iTop\\PhpParser\\Evaluation\\IssetEvaluator' => __DIR__ . '/../..' . '/sources/PhpParser/Evaluation/IssetEvaluator.php',
'Combodo\\iTop\\PhpParser\\Evaluation\\MethodCallEvaluator' => __DIR__ . '/../..' . '/sources/PhpParser/Evaluation/MethodCallEvaluator.php',
'Combodo\\iTop\\PhpParser\\Evaluation\\ModEvaluator' => __DIR__ . '/../..' . '/sources/PhpParser/Evaluation/ModEvaluator.php',
'Combodo\\iTop\\PhpParser\\Evaluation\\MulEvaluator' => __DIR__ . '/../..' . '/sources/PhpParser/Evaluation/MulEvaluator.php',
'Combodo\\iTop\\PhpParser\\Evaluation\\NotEqualEvaluator' => __DIR__ . '/../..' . '/sources/PhpParser/Evaluation/NotEqualEvaluator.php',
'Combodo\\iTop\\PhpParser\\Evaluation\\NullsafeMethodCallEvaluator' => __DIR__ . '/../..' . '/sources/PhpParser/Evaluation/NullsafeMethodCallEvaluator.php',
'Combodo\\iTop\\PhpParser\\Evaluation\\NullsafePropertyFetchEvaluator' => __DIR__ . '/../..' . '/sources/PhpParser/Evaluation/NullsafePropertyFetchEvaluator.php',
'Combodo\\iTop\\PhpParser\\Evaluation\\PhpExpressionEvaluator' => __DIR__ . '/../..' . '/sources/PhpParser/Evaluation/PhpExpressionEvaluator.php',
'Combodo\\iTop\\PhpParser\\Evaluation\\PropertyFetchEvaluator' => __DIR__ . '/../..' . '/sources/PhpParser/Evaluation/PropertyFetchEvaluator.php',
'Combodo\\iTop\\PhpParser\\Evaluation\\SmallerEvaluator' => __DIR__ . '/../..' . '/sources/PhpParser/Evaluation/SmallerEvaluator.php',
'Combodo\\iTop\\PhpParser\\Evaluation\\SmallerOrEqualEvaluator' => __DIR__ . '/../..' . '/sources/PhpParser/Evaluation/SmallerOrEqualEvaluator.php',
'Combodo\\iTop\\PhpParser\\Evaluation\\StaticCallEvaluator' => __DIR__ . '/../..' . '/sources/PhpParser/Evaluation/StaticCallEvaluator.php',
'Combodo\\iTop\\PhpParser\\Evaluation\\StaticPropertyFetchEvaluator' => __DIR__ . '/../..' . '/sources/PhpParser/Evaluation/StaticPropertyFetchEvaluator.php',
'Combodo\\iTop\\PhpParser\\Evaluation\\TernaryEvaluator' => __DIR__ . '/../..' . '/sources/PhpParser/Evaluation/TernaryEvaluator.php',
'Combodo\\iTop\\PhpParser\\Evaluation\\UnaryMinusEvaluator' => __DIR__ . '/../..' . '/sources/PhpParser/Evaluation/UnaryMinusEvaluator.php',
'Combodo\\iTop\\PhpParser\\Evaluation\\UnaryPlusEvaluator' => __DIR__ . '/../..' . '/sources/PhpParser/Evaluation/UnaryPlusEvaluator.php',
'Combodo\\iTop\\PhpParser\\Evaluation\\VariableEvaluator' => __DIR__ . '/../..' . '/sources/PhpParser/Evaluation/VariableEvaluator.php',
'Combodo\\iTop\\PhpParser\\Evaluation\\iExprEvaluator' => __DIR__ . '/../..' . '/sources/PhpParser/Evaluation/iExprEvaluator.php',
'Combodo\\iTop\\Renderer\\BlockRenderer' => __DIR__ . '/../..' . '/sources/Renderer/BlockRenderer.php',
'Combodo\\iTop\\Renderer\\Bootstrap\\BsFieldRendererMappings' => __DIR__ . '/../..' . '/sources/Renderer/Bootstrap/BsFieldRendererMappings.php',
'Combodo\\iTop\\Renderer\\Bootstrap\\BsFormRenderer' => __DIR__ . '/../..' . '/sources/Renderer/Bootstrap/BsFormRenderer.php',
Expand Down
5 changes: 3 additions & 2 deletions lib/composer/platform_check.php
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,8 @@
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)
trigger_error(
'Composer detected issues in your platform: ' . implode(' ', $issues),
E_USER_ERROR
);
}
Loading