Public Member Functions | |
| ilCtrlStructureReader () | |
| getStructure () | |
| parse code files and store call structure in db | |
| read ($a_cdir) | |
| read structure into internal variables | |
| store ($a_cdir="./..") | |
| read structure into internal variables | |
Data Fields | |
| $class_script | |
| $class_childs | |
| $executed | |
Definition at line 34 of file class.ilCtrlStructureReader.php.
| ilCtrlStructureReader::getStructure | ( | ) |
parse code files and store call structure in db
Definition at line 50 of file class.ilCtrlStructureReader.php.
References read(), and store().
{
// only run one time per db_update request
if (!$this->executed)
{
$this->read(ILIAS_ABSOLUTE_PATH);
$this->store();
$this->executed = true;
}
// read module information
// not clear wheter this is a good place for module reading info
// or not
/*
require_once("classes/class.ilModuleReader.php");
$module_reader =& new ilModuleReader();
$module_reader->clearTables();
$module_reader->startParsing();
*/
}
Here is the call graph for this function:| ilCtrlStructureReader::ilCtrlStructureReader | ( | ) |
Definition at line 40 of file class.ilCtrlStructureReader.php.
{
$this->class_script = array();
$this->class_childs = array();
$this->executed = false;
}
| ilCtrlStructureReader::read | ( | $ | a_cdir | ) |
read structure into internal variables
private
Definition at line 76 of file class.ilCtrlStructureReader.php.
Referenced by getStructure().
{
// check wether $a_cdir is a directory
if (!@is_dir($a_cdir))
{
return false;
}
// read current directory
$dir = opendir($a_cdir);
while($file = readdir($dir))
{
if ($file != "." and
$file != "..")
{
// directories
if (@is_dir($a_cdir."/".$file))
{
if ($a_cdir."/".$file != ILIAS_ABSOLUTE_PATH."/data")
{
$this->read($a_cdir."/".$file);
}
}
// files
if (@is_file($a_cdir."/".$file))
{
if (eregi("^class.*php$", $file))
{
$handle = fopen($a_cdir."/".$file, "r");
while (!feof($handle)) {
$line = fgets($handle, 4096);
$pos = strpos(strtolower($line), "@ilctrl_calls");
if (is_int($pos))
{
$com = substr($line, $pos + 14);
$pos2 = strpos($com, ":");
if (is_int($pos2))
{
$com_arr = explode(":", $com);
$parent = strtolower(trim($com_arr[0]));
$this->class_script[$parent] = $a_cdir."/".$file;
$childs = explode(",", $com_arr[1]);
foreach($childs as $child)
{
$child = trim(strtolower($child));
if (!is_array($this->class_childs[$parent]) || !in_array($child, $this->class_childs[$parent]))
{
$this->class_childs[$parent][] = $child;
}
}
}
}
}
fclose($handle);
}
}
}
}
}
Here is the caller graph for this function:| ilCtrlStructureReader::store | ( | $ | a_cdir = "./.." |
) |
read structure into internal variables
private
Definition at line 143 of file class.ilCtrlStructureReader.php.
References $file, $q, and $script.
Referenced by getStructure().
{
global $ilDB;
// delete all class to file assignments
$q = "DELETE FROM ctrl_classfile";
$ilDB->query($q);
// delete all call entries
$q = "DELETE FROM ctrl_calls";
$ilDB->query($q);
foreach($this->class_script as $class => $script)
{
$file = substr($script, strlen(ILIAS_ABSOLUTE_PATH) + 1);
// store class to file assignment
$q = "INSERT INTO ctrl_classfile (class, file) VALUES".
"(".$ilDB->quote($class).",".$ilDB->quote($file).")";
$ilDB->query($q);
if (is_array($this->class_childs[$class]))
{
foreach($this->class_childs[$class] as $child)
{
// store call entry
$q = "INSERT INTO ctrl_calls (parent, child) VALUES".
"(".$ilDB->quote($class).",".$ilDB->quote($child).")";
$ilDB->query($q);
}
}
}
}
Here is the caller graph for this function:| ilCtrlStructureReader::$class_childs |
Definition at line 37 of file class.ilCtrlStructureReader.php.
| ilCtrlStructureReader::$class_script |
Definition at line 36 of file class.ilCtrlStructureReader.php.
| ilCtrlStructureReader::$executed |
Definition at line 38 of file class.ilCtrlStructureReader.php.
1.7.1