Skip to content

Commit

Permalink
- Merge [1420].
Browse files Browse the repository at this point in the history
  • Loading branch information
sebastianbergmann committed Oct 18, 2007
1 parent 87c467b commit 4420fb8
Show file tree
Hide file tree
Showing 5 changed files with 64 additions and 46 deletions.
91 changes: 61 additions & 30 deletions PHPUnit/Util/Log/PMD.php
Original file line number Diff line number Diff line change
Expand Up @@ -45,11 +45,14 @@
*/

require_once 'PHPUnit/Runner/Version.php';
require_once 'PHPUnit/Util/Log/PMD/Rule.php';
require_once 'PHPUnit/Util/Metrics/Project.php';
require_once 'PHPUnit/Util/Log/PMD/Rule/Class.php';
require_once 'PHPUnit/Util/Log/PMD/Rule/File.php';
require_once 'PHPUnit/Util/Log/PMD/Rule/Function.php';
require_once 'PHPUnit/Util/Class.php';
require_once 'PHPUnit/Util/CodeCoverage.php';
require_once 'PHPUnit/Util/Filter.php';
require_once 'PHPUnit/Util/FilterIterator.php';
require_once 'PHPUnit/Util/Printer.php';

PHPUnit_Util_Filter::addFileToFilter(__FILE__, 'PHPUNIT');
Expand Down Expand Up @@ -89,35 +92,7 @@ class PHPUnit_Util_Log_PMD extends PHPUnit_Util_Printer
public function __construct($out = NULL, array $configuration = array())
{
parent::__construct($out);

$classes = get_declared_classes();

foreach ($classes as $className) {
$class = new ReflectionClass($className);

if (!$class->isAbstract() && $class->isSubclassOf('PHPUnit_Util_Log_PMD_Rule')) {
$rule = explode('_', $className);
$rule = $rule[count($rule)-1];

if (isset($configuration[$className])) {
$object = new $className($configuration[$className]);
} else {
$object = new $className;
}

if ($class->isSubclassOf('PHPUnit_Util_Log_PMD_Rule_File')) {
$this->rules['file'][$rule] = $object;
}

else if ($class->isSubclassOf('PHPUnit_Util_Log_PMD_Rule_Class')) {
$this->rules['class'][$rule] = $object;
}

else if ($class->isSubclassOf('PHPUnit_Util_Log_PMD_Rule_Function')) {
$this->rules['function'][$rule] = $object;
}
}
}
$this->loadClasses();
}

/**
Expand Down Expand Up @@ -282,5 +257,61 @@ protected function processFunctionOrMethod(DOMElement $element, $metrics, $packa
}
}
}

protected function loadClasses()
{
$basedir = dirname(__FILE__) . DIRECTORY_SEPARATOR .
'PMD' . DIRECTORY_SEPARATOR . 'Rule';

$dirs = array(
$basedir . DIRECTORY_SEPARATOR . 'Class',
$basedir . DIRECTORY_SEPARATOR . 'File',
$basedir . DIRECTORY_SEPARATOR . 'Function'
);

foreach ($dirs as $dir) {
if (file_exists($dir)) {
$iterator = new PHPUnit_Util_FilterIterator(
new RecursiveIteratorIterator(
new RecursiveDirectoryIterator($dir)
),
'.php'
);

foreach ($iterator as $file) {
include_once $file->getPathname();
}
}
}

$classes = get_declared_classes();

foreach ($classes as $className) {
$class = new ReflectionClass($className);

if (!$class->isAbstract() && $class->isSubclassOf('PHPUnit_Util_Log_PMD_Rule')) {
$rule = explode('_', $className);
$rule = $rule[count($rule)-1];

if (isset($configuration[$className])) {
$object = new $className($configuration[$className]);
} else {
$object = new $className;
}

if ($class->isSubclassOf('PHPUnit_Util_Log_PMD_Rule_File')) {
$this->rules['file'][$rule] = $object;
}

else if ($class->isSubclassOf('PHPUnit_Util_Log_PMD_Rule_Class')) {
$this->rules['class'][$rule] = $object;
}

else if ($class->isSubclassOf('PHPUnit_Util_Log_PMD_Rule_Function')) {
$this->rules['function'][$rule] = $object;
}
}
}
}
}
?>
4 changes: 0 additions & 4 deletions PHPUnit/Util/Log/PMD/Rule.php
Original file line number Diff line number Diff line change
Expand Up @@ -72,8 +72,4 @@ public function __construct($threshold)

abstract public function apply(PHPUnit_Util_Metrics $metrics);
}

require_once 'PHPUnit/Util/Log/PMD/Rule/File.php';
require_once 'PHPUnit/Util/Log/PMD/Rule/Class.php';
require_once 'PHPUnit/Util/Log/PMD/Rule/Function.php';
?>
7 changes: 1 addition & 6 deletions PHPUnit/Util/Log/PMD/Rule/Class.php
Original file line number Diff line number Diff line change
Expand Up @@ -44,6 +44,7 @@
* @since File available since Release 3.2.0
*/

require_once 'PHPUnit/Util/Log/PMD/Rule.php';
require_once 'PHPUnit/Util/Filter.php';

PHPUnit_Util_Filter::addFileToFilter(__FILE__, 'PHPUNIT');
Expand All @@ -63,10 +64,4 @@
abstract class PHPUnit_Util_Log_PMD_Rule_Class extends PHPUnit_Util_Log_PMD_Rule
{
}

require_once 'PHPUnit/Util/Log/PMD/Rule/Class/DepthOfInheritanceTree.php';
require_once 'PHPUnit/Util/Log/PMD/Rule/Class/EfferentCoupling.php';
require_once 'PHPUnit/Util/Log/PMD/Rule/Class/ExcessiveClassLength.php';
require_once 'PHPUnit/Util/Log/PMD/Rule/Class/ExcessivePublicCount.php';
require_once 'PHPUnit/Util/Log/PMD/Rule/Class/TooManyFields.php';
?>
1 change: 1 addition & 0 deletions PHPUnit/Util/Log/PMD/Rule/File.php
Original file line number Diff line number Diff line change
Expand Up @@ -44,6 +44,7 @@
* @since File available since Release 3.2.0
*/

require_once 'PHPUnit/Util/Log/PMD/Rule.php';
require_once 'PHPUnit/Util/Filter.php';

PHPUnit_Util_Filter::addFileToFilter(__FILE__, 'PHPUNIT');
Expand Down
7 changes: 1 addition & 6 deletions PHPUnit/Util/Log/PMD/Rule/Function.php
Original file line number Diff line number Diff line change
Expand Up @@ -44,6 +44,7 @@
* @since File available since Release 3.2.0
*/

require_once 'PHPUnit/Util/Log/PMD/Rule.php';
require_once 'PHPUnit/Util/Filter.php';

PHPUnit_Util_Filter::addFileToFilter(__FILE__, 'PHPUNIT');
Expand All @@ -64,10 +65,4 @@
abstract class PHPUnit_Util_Log_PMD_Rule_Function extends PHPUnit_Util_Log_PMD_Rule
{
}

require_once 'PHPUnit/Util/Log/PMD/Rule/Function/CodeCoverage.php';
require_once 'PHPUnit/Util/Log/PMD/Rule/Function/CyclomaticComplexity.php';
require_once 'PHPUnit/Util/Log/PMD/Rule/Function/ExcessiveMethodLength.php';
require_once 'PHPUnit/Util/Log/PMD/Rule/Function/ExcessiveParameterList.php';
require_once 'PHPUnit/Util/Log/PMD/Rule/Function/NPathComplexity.php';
?>

0 comments on commit 4420fb8

Please sign in to comment.