0 レビュー
1 回答
php-リポジトリにはインターフェースが必要ですか?
私はlaravelでリポジトリパターンを使用することを大いに読んでおり、リポジトリ自体とそのインターフェイスの両方でDIが行われているのを見てきました。
私の質問は、リポジトリが効果を発揮するにはインターフェースが必要ですか?
class Repository {
public function foo () {
return "Hi";
}
}
class RepositoryController {
private $test;
public function __contruct(Repository $test) {
$this->test = $test;
}
public function do() {
echo $test->foo();
}
}
vs:
interface RepositoryInterface {
function foo (string $text)
}
class Repository implements RepositoryInterface {
public function foo ($text) {
return $text;
}
}
class RepositoryController {
private $test;
public function __contruct(RepositoryInterface $test) {
$this->test = $test;
}
public function do() {
echo $test->foo();
}
}
わからない
0
レビュー
答え :
解決策:
簡単な答え:いいえ。インターフェースを使用する必要はありません。インターフェイスは、インターフェイスを実装する各クラスで同じメソッドを正しく使用することを保証するだけです。
たとえば、findOne(id)メソッドを使用する場合。常にIDを受け取り、そのタイプと何を返す必要があるかを指定できます。
大規模なアプリケーションでは、非常に便利で秩序を維持できます。
確信が持てない場合は、私の経験から、いくつかの異なる方法を試して、どれがニーズに合っているかを確認することをお勧めします。時間がない場合を除いて、より一般的なものを使用する必要があります。
私はインターフェースを使用しましたが、新しい開発者が入ってきて、すべてのリポジトリで何が許可されているかをよりよく理解すると、うまく機能したと思います。
わからない
同様の質問
私たちのウェブサイトで同様の質問で答えを見つけてください。