DuplicateDetectorInterface
in
メディアの内容(バイト列)による重複判定契約
「探す」までがこのインターフェースの責務で、見つかった重複をどう扱うか (自動再利用する/ユーザーに提案する等)は呼び出し側に委ねる。同一の実装を 挙動の異なる複数の呼び出し元(CSVインポート・将来の手動アップロード等)から 使い回せるようにするため。
Table of Contents
Methods
- findDuplicates() : array<string|int, int>
- 指定したハッシュに一致する既存メディアを、指定ユーザーの選択可能スコープ内で探す
- hash() : string
- ファイルの内容から同一性判定用のハッシュ値を計算する
- hashContent() : string
- 既に読み込み済みの内容(バイト列)から同一性判定用のハッシュ値を計算する
Methods
findDuplicates()
指定したハッシュに一致する既存メディアを、指定ユーザーの選択可能スコープ内で探す
public
findDuplicates(string $hash, int $blogId, int $userId) : array<string|int, int>
スコープは「そのユーザーがメディア選択UIで選択できるメディア」と一致させる (Helper::filterAccessibleMedia())。
Parameters
- $hash : string
- $blogId : int
- $userId : int
Return values
array<string|int, int> —一致した media_id 一覧(media_id 昇順)。一致なしは空配列
hash()
ファイルの内容から同一性判定用のハッシュ値を計算する
public
hash(string $filePath) : string
Parameters
- $filePath : string
-
実在するローカルファイルパス
Tags
Return values
stringhashContent()
既に読み込み済みの内容(バイト列)から同一性判定用のハッシュ値を計算する
public
hashContent(string $content) : string
クラウドストレージ等、ローカルファイルパスを介さず内容を取得した場合に使う (HashBackfiller など)。hash() と同一のアルゴリズムを使うことを保証する。
Parameters
- $content : string