Exemple #1
0
 protected function processClasses()
 {
     $classes = PHPCoverage_Util_File::getClassesInFile($this->getPath());
     foreach ($classes as $className => $class) {
         $this->classes[$className] = array('methods' => array(), 'startLine' => $class['startLine'], 'executableLines' => 0, 'executedLines' => 0);
         $this->startLines[$class['startLine']] =& $this->classes[$className];
         $this->endLines[$class['endLine']] =& $this->classes[$className];
         foreach ($class['methods'] as $methodName => $method) {
             $this->classes[$className]['methods'][$methodName] = array('signature' => $method['signature'], 'startLine' => $method['startLine'], 'executableLines' => 0, 'executedLines' => 0);
             $this->startLines[$method['startLine']] =& $this->classes[$className]['methods'][$methodName];
             $this->endLines[$method['endLine']] =& $this->classes[$className]['methods'][$methodName];
             $this->numMethods++;
         }
         $this->numClasses++;
     }
 }
Exemple #2
0
 /**
  * Constructor.
  *
  * @param $filename string       	
  * @param $codeCoverage array       	
  * @throws RuntimeException
  */
 protected function __construct($filename, &$codeCoverage = array())
 {
     if (!file_exists($filename)) {
         throw new RuntimeException(sprintf('File "%s" not found.', $filename));
     }
     $this->filename = $filename;
     foreach (PHPCoverage_Util_File::countLines($this->filename) as $name => $value) {
         $this->{$name} = $value;
     }
     $this->setCoverage($codeCoverage);
     foreach (PHPCoverage_Util_File::getClassesInFile($filename) as $className => $class) {
         $this->classes[$className] = PHPCoverage_Util_Metrics_Class::factory(new ReflectionClass($className), $codeCoverage);
     }
     foreach (PHPCoverage_Util_File::getFunctionsInFile($filename) as $functionName => $function) {
         $this->functions[$functionName] = PHPCoverage_Util_Metrics_Function::factory(new ReflectionFunction($functionName), $codeCoverage);
     }
 }