protected function processFunctions() { $functions = PHPUnit_Util_Class::getFunctionsInFile($this->getPath()); if (count($functions) > 0 && !isset($this->classes['*'])) { $this->classes['*'] = array('methods' => array(), 'startLine' => 0, 'executableLines' => 0, 'executedLines' => 0); } foreach ($functions as $function) { $functionName = $function->getName(); $functionStartLine = $function->getStartLine(); $functionEndLine = $function->getEndLine(); $this->classes['*']['methods'][$functionName] = array('startLine' => $functionStartLine, 'executableLines' => 0, 'executedLines' => 0); $this->startLines[$functionStartLine] =& $this->classes['*']['methods'][$functionName]; $this->endLines[$functionEndLine] =& $this->classes['*']['methods'][$functionName]; $this->numMethods++; } }
/** * Constructor. * * @param string $filename * @param array $codeCoverage * @throws RuntimeException */ protected function __construct($filename, &$codeCoverage = array()) { if (!file_exists($filename)) { throw new RuntimeException(sprintf('File "%s" not found.', $filename)); } $this->filename = $filename; $this->lines = file($filename); $this->tokens = token_get_all(file_get_contents($filename)); $this->countLines(); $this->setCoverage($codeCoverage); foreach (PHPUnit_Util_Class::getClassesInFile($filename) as $class) { $this->classes[$class->getName()] = PHPUnit_Util_Metrics_Class::factory($class, $codeCoverage); } foreach (PHPUnit_Util_Class::getFunctionsInFile($filename) as $function) { $this->functions[$function->getName()] = PHPUnit_Util_Metrics_Function::factory($function, $codeCoverage); } }