function do_coder_reviews in Coder 5.2
Same name and namespace in other branches
- 5 coder.module \do_coder_reviews()
- 6.2 coder.module \do_coder_reviews()
- 6 coder.module \do_coder_reviews()
- 7.2 coder_review/coder_review.common.inc \do_coder_reviews()
- 7 coder_review/coder_review.module \do_coder_reviews()
Perform batch coder reviews for multiple files.
Parameters
$coder_args: Array of coder arguments, valid arguments are:
- '#reviews' => array list of reviews to perform, see _coder_reviews();
- '#severity' => integer magic number, see constants SEVERITY_*;
- '#filename' => string filename to check,
Return value
Array of results, in form:
- '#stats' => Array with error counts for all severities, in form 'minor' => integer count, 'normal' => integer count; 'critical' => integer count;
- integer ID => HTML error for display.
2 calls to do_coder_reviews()
- coder_page_form in ./
coder.module - Implementation of hook_form().
- _coder_page_form_includes in ./
coder.module - Add results to form array for display on form page.
File
- ./
coder.module, line 798 - Developer Module that assists with code review and version upgrade that supports a plug-in extensible hook system so contributed modules can define additional review standards.
Code
function do_coder_reviews($coder_args) {
if ($use_cache = variable_get('coder_cache', 1)) {
// Load the cached results if they exists.
$cache_key = 'coder:' . implode(':', array_keys($coder_args['#reviews'])) . $coder_args['#severity'] . ':' . $coder_args['#filename'];
$cache_mtime = filemtime(realpath($coder_args['#filename']));
if ($cache_results = cache_get($cache_key)) {
if ($cache_results->data['mtime'] == $cache_mtime && _coder_modified() < $cache_results->created) {
return unserialize($cache_results->data['results']);
}
}
}
$results = array(
'#stats' => array(
'minor' => 0,
'normal' => 0,
'critical' => 0,
),
);
// Skip php include files when the user requested severity is above minor.
if (isset($coder_args['#php_minor']) && drupal_substr($coder_args['#filename'], -4) == '.php') {
if ($coder_args['#severity'] > 1) {
return $results;
}
}
// Read the file.
if (_coder_read_and_parse_file($coder_args)) {
// Do all of the code reviews.
foreach ($coder_args['#reviews'] as $review) {
if ($result = do_coder_review($coder_args, $review)) {
foreach (array(
'critical',
'normal',
'minor',
) as $severity_level) {
if (isset($result['#stats'][$severity_level])) {
$results['#stats'][$severity_level] += $result['#stats'][$severity_level];
}
}
$results += $result;
}
}
// Sort the results.
ksort($results, SORT_NUMERIC);
}
else {
_coder_error_msg($results, t('Could not read the file'), 'critical');
}
// Save the results in the cache.
if ($use_cache) {
$cache_results = array(
'mtime' => $cache_mtime,
'results' => $results,
);
cache_set($cache_key, 'cache', serialize($cache_results));
}
return $results;
}