mirror of
https://github.com/Combodo/iTop.git
synced 2026-09-29 21:09:10 +02:00
Internal: keep track of class declaration source files
SVN:trunk[1217]
This commit is contained in:
@@ -129,9 +129,17 @@ abstract class MetaModel
|
||||
//
|
||||
///////////////////////////////////////////////////////////////////////////
|
||||
|
||||
private static $m_bTraceSourceFiles = false;
|
||||
private static $m_aClassToFile = array();
|
||||
|
||||
public static function GetClassFiles()
|
||||
{
|
||||
return self::$m_aClassToFile;
|
||||
}
|
||||
|
||||
// Purpose: workaround the following limitation = PHP5 does not allow to know the class (derived from the current one)
|
||||
// from which a static function is called (__CLASS__ and self are interpreted during parsing)
|
||||
private static function GetCallersPHPClass($sExpectedFunctionName = null)
|
||||
private static function GetCallersPHPClass($sExpectedFunctionName = null, $bRecordSourceFile = false)
|
||||
{
|
||||
//var_dump(debug_backtrace());
|
||||
$aBacktrace = debug_backtrace();
|
||||
@@ -142,6 +150,10 @@ abstract class MetaModel
|
||||
{
|
||||
assert('$aBacktrace[2]["function"] == $sExpectedFunctionName');
|
||||
}
|
||||
if ($bRecordSourceFile)
|
||||
{
|
||||
self::$m_aClassToFile[$aBacktrace[2]["class"]] = $aBacktrace[1]["file"];
|
||||
}
|
||||
return $aBacktrace[2]["class"];
|
||||
}
|
||||
|
||||
@@ -1333,7 +1345,7 @@ abstract class MetaModel
|
||||
"db_finalclass_field" => "database field wich is the reference to the actual class of the object, considering that this will be a compound class",
|
||||
);
|
||||
|
||||
$sClass = self::GetCallersPHPClass("Init");
|
||||
$sClass = self::GetCallersPHPClass("Init", self::$m_bTraceSourceFiles);
|
||||
|
||||
foreach($aMandatParams as $sParamName=>$sParamDesc)
|
||||
{
|
||||
@@ -3559,8 +3571,10 @@ abstract class MetaModel
|
||||
}
|
||||
}
|
||||
|
||||
public static function Startup($sConfigFile, $bModelOnly = false, $bAllowCache = true)
|
||||
public static function Startup($sConfigFile, $bModelOnly = false, $bAllowCache = true, $bTraceSourceFiles = false)
|
||||
{
|
||||
self::$m_bTraceSourceFiles = $bTraceSourceFiles;
|
||||
|
||||
self::LoadConfig($sConfigFile, $bAllowCache);
|
||||
|
||||
if ($bModelOnly) return;
|
||||
|
||||
Reference in New Issue
Block a user