私はPHPに精通していないので、ここでコードの重複を減らすにはどうすればよいですか?どちらのメソッドも、ここでは全く同じことをしています...文字列が抽出された部分(filemtime
とbasename
)を除いて結合されています。コードの複製を減らす方法
/**
* Gets joined files hash
*
* @param $files an array of file paths
* @param $func_name callback name
* @return mixed
*/
private function getFilesHash($files, callable $func_name) {
$joined = "";
foreach ($files as $file) {
$joined .= call_user_func($func_name, $file);
}
return $this->checksum($joined);
}
使用法:
$fileHash = getFilesHash($files, 'basename');
使用する機能
private function modified_hash($files) {
$joined = "";
foreach ($files as $file) {
$joined .= filemtime($file);
}
return $this->checksum($joined);
}
private function filename_hash($files) {
$joined = "";
foreach ($files as $file) {
$joined .= basename($file);
}
return $this->checksum($joined);
}