diff --git a/core/datamodel.core.xml b/core/datamodel.core.xml index 9e599eb2b..0aa85dedc 100644 --- a/core/datamodel.core.xml +++ b/core/datamodel.core.xml @@ -866,6 +866,18 @@ + + + DBObject + + core/cmdb,view_in_gui + + + + + + + Event diff --git a/core/metamodel.class.php b/core/metamodel.class.php index 8f9808cc2..08a503065 100644 --- a/core/metamodel.class.php +++ b/core/metamodel.class.php @@ -7557,6 +7557,13 @@ abstract class MetaModel require_once(APPROOT.'core/userrights.class.inc.php'); UserRights::FlushPrivileges(); + + // Reset the opcache since otherwise the PHP "model" files may still be cached !! + if (function_exists('opcache_reset')) + { + // Zend opcode cache + opcache_reset(); + } } /** diff --git a/datamodels/2.x/combodo-db-tools/db_analyzer.class.inc.php b/datamodels/2.x/combodo-db-tools/db_analyzer.class.inc.php index 00ad38388..3bfa47ad9 100644 --- a/datamodels/2.x/combodo-db-tools/db_analyzer.class.inc.php +++ b/datamodels/2.x/combodo-db-tools/db_analyzer.class.inc.php @@ -170,7 +170,7 @@ class DatabaseAnalyzer $this->CheckHK($sClass, $sAttCode, $aErrorsAndFixes); } } - elseif ($oAttDef->IsDirectField() && !($oAttDef instanceof AttributeTagSet)) + elseif ($oAttDef->IsDirectField() && !($oAttDef instanceof AttributeSet)) { $this->CheckAllowedValues($sClass, $sAttCode, $oAttDef, $sTable, $sKeyField, $aErrorsAndFixes); } diff --git a/tests/php-unit-tests/src/Service/UnitTestRunTimeEnvironment.php b/tests/php-unit-tests/src/Service/UnitTestRunTimeEnvironment.php index 478bf27fa..f7efa4211 100644 --- a/tests/php-unit-tests/src/Service/UnitTestRunTimeEnvironment.php +++ b/tests/php-unit-tests/src/Service/UnitTestRunTimeEnvironment.php @@ -13,6 +13,7 @@ use RecursiveDirectoryIterator; use RecursiveIteratorIterator; use ReflectionClass; use RunTimeEnvironment; +use SetupUtils; use utils; @@ -47,11 +48,23 @@ class UnitTestRunTimeEnvironment extends RunTimeEnvironment return $this->sFinalEnv; } + public function CompileFrom($sSourceEnv, $bUseSymLinks = null) + { + $sDestModulesDir = APPROOT.'data/'.$this->sTargetEnv.'-modules/'; + if (is_dir($sDestModulesDir)) { + SetupUtils::rrmdir($sDestModulesDir); + } + + SetupUtils::copydir(APPROOT.'/data/'.$sSourceEnv.'-modules', $sDestModulesDir, $bUseSymLinks); + + parent::CompileFrom($sSourceEnv, $bUseSymLinks); + } + public function IsUpToDate() { clearstatcache(); $fLastCompilationTime = filemtime(APPROOT.'env-'.$this->sFinalEnv); - $aModifiedFiles = []; + $aModifiedFiles = []; $this->FindFilesModifiedAfter($fLastCompilationTime, APPROOT.'datamodels/2.x', $aModifiedFiles); $this->FindFilesModifiedAfter($fLastCompilationTime, APPROOT.'extensions', $aModifiedFiles); $this->FindFilesModifiedAfter($fLastCompilationTime, APPROOT.'data/production-modules', $aModifiedFiles); @@ -63,11 +76,11 @@ class UnitTestRunTimeEnvironment extends RunTimeEnvironment if (count($aModifiedFiles) > 0) { echo "The following files have been modified after the last compilation:\n"; foreach ($aModifiedFiles as $sFile) { - echo " - $sFile\n"; - } + echo " - $sFile\n"; + } } return (count($aModifiedFiles) === 0); - } + } /** * @inheritDoc @@ -131,7 +144,6 @@ class UnitTestRunTimeEnvironment extends RunTimeEnvironment continue; } if (in_array($sClass, $aLoadedTestClasses)) { - echo "class $sClass already loaded somehow \n"; continue; } $aLoadedTestClasses[]=$sClass;