public function run($files) { $resultFile = tempnam(sys_get_temp_dir(), 'phpmd'); $renderer = new JSONRenderer(); $renderer->setWriter(new StreamWriter($resultFile)); $ruleSetFactory = new RuleSetFactory(); $phpmd = new PHPMD(); if (isset($this->config['config']['file_extensions'])) { $phpmd->setFileExtensions(explode(',', $this->config['config']['file_extensions'])); } $rulesets = Runner::RULESETS; if (isset($this->config['config']['rulesets'])) { $rulesets = $this->prefixCodeDirectory($this->config['config']['rulesets']); } $phpmd->processFiles(implode(",", $files), $rulesets, array($renderer), $ruleSetFactory); return $resultFile; }
<?php namespace PHPMD\TextUI; error_reporting(E_ERROR | E_PARSE | E_NOTICE); date_default_timezone_set('UTC'); ini_set('memory_limit', -1); require_once __DIR__ . '/vendor/autoload.php'; require_once "JSONRenderer.php"; use PHPMD\PHPMD; use PHPMD\RuleSetFactory; use PHPMD\Writer\StreamWriter; use PHPMD\Renderer\JSONRenderer; $config = json_decode(file_get_contents('/config.json'), true); $renderer = new JSONRenderer(); $renderer->setWriter(new StreamWriter(STDOUT)); $ruleSetFactory = new RuleSetFactory(); $all_files = scandir_recursive("/code"); if ($config["exclude_paths"]) { $files = array(); foreach ($all_files as $file) { if (!in_array($file, $config["exclude_paths"])) { $files[] = "/code/" . $file; } } } else { foreach ($all_files as $file) { if (!in_array($file, $ignorePatterns)) { $files[] = "/code/" . $file; } }