PHPMDが私のコードの一部に高いNPathの複雑さがあると報告したとき、私はPHPMessDetectorを使用してコードを分析していました。1つの例は次のとおりです。
function compareDates($date1, $date2){
if($date->year < $date2->year){
return -1;
}
if($date->year > $date2->year){
return 1;
}
if($date->month < $date2->month){
return -1;
}
if($date->month > $date2->month){
return 1;
}
if($date->day < $date2->day){
return -1;
}
if($date->day > $date2->day){
return 1;
}
// etc.. same for hour, minute, second.
return 0;
}
その結果、この関数のNPathの複雑さは非常に高くなります。このような制御構造とNPathの複雑さを軽減するための一般的なコーディング方法はありますか?
ソースコード:http ://code.google.com/p/phpraise/source/browse/trunk/phpraise/core/datetime/RaiseDateTime.php#546