Lavavelリポジトリパターン
当初投稿されます:https://asperbrothers.com/blog/implement-repository-pattern-in-laravel/
Laravelアプリケーションにレポジトリパターンを実装するために必要な最初のことは、リポジトリパターンがどのようなものであるかを理解することです.
この記事では、次のことを学びます.
リポジトリパターンを使用する主な利点 Laravelでリポジトリパターンを実装する方法 私たちはどのようにコードを起動し、LALAVELアプリ でそれを実装する手順を示します
重要なこと
リポジトリは、ドメインと永続層の間の分離です.リポジトリは、データベース、ファイルシステムまたは外部サービスに格納されたデータにアクセスするためのコレクションインターフェイスを提供します.データはオブジェクトの形で返されます.
Laravelアプリケーションのリポジトリパターンを使用する主なアイデアは、モデルとコントローラ間のブリッジを作成することです.言い換えれば、コントローラからモデルのハード依存性を分離する.モデルは、データベースからのデータとの通信や抽出に責任を負わない.モデルは、与えられたテーブル/ドキュメント/オブジェクトまたは我々のデータ構造の他のタイプを表すオブジェクトでなければなりません、そして、これはその唯一の責任でなければなりません.したがって、あなたのLaravelコードをきれいにしておくためには、モデルが決して責任を負うべきでない責任を分離するのにリポジトリを使用する価値があります.
リポジトリパターンの使用には多くの利点があり、以下は最も重要なもののリストです.
データアクセスロジックの集中化は、コードを を維持するのをより簡単にしますビジネスとデータアクセスロジックは、別に をテストすることができますはコード の複製を減らしますプログラミングエラーを作るためのより低いチャンス ほとんどのLaravelアプリケーションでは、そのようなコードが発生する可能性があります.
全体の記事をhttps://asperbrothers.com/blog/implement-repository-pattern-in-laravel/に行くを参照してください.
Laravelアプリケーションにレポジトリパターンを実装するために必要な最初のことは、リポジトリパターンがどのようなものであるかを理解することです.
この記事では、次のことを学びます.
リポジトリパターンを使用する主な利点
重要なこと
リポジトリは、ドメインと永続層の間の分離です.リポジトリは、データベース、ファイルシステムまたは外部サービスに格納されたデータにアクセスするためのコレクションインターフェイスを提供します.データはオブジェクトの形で返されます.
Laravelアプリケーションのリポジトリパターンを使用する主なアイデアは、モデルとコントローラ間のブリッジを作成することです.言い換えれば、コントローラからモデルのハード依存性を分離する.モデルは、データベースからのデータとの通信や抽出に責任を負わない.モデルは、与えられたテーブル/ドキュメント/オブジェクトまたは我々のデータ構造の他のタイプを表すオブジェクトでなければなりません、そして、これはその唯一の責任でなければなりません.したがって、あなたのLaravelコードをきれいにしておくためには、モデルが決して責任を負うべきでない責任を分離するのにリポジトリを使用する価値があります.
リポジトリパターンの使用には多くの利点があり、以下は最も重要なもののリストです.
データアクセスロジックの
class UsersController extends Controller
{
public function index()
{
$users = User::all();
return view('users.index', [
'users' => $users
]);
}
}
一見して、それは悪く見えません.しかし、クライアントがデータ構造を変更することを提案しているのか、MySQL/PostgreSQLではなく、どこか他のデータをどこか他のデータエンジンを使ってサポートしていないのではないかと考えてみる価値はありますか?我々がそのようなコードを書くとき、そのような変化は実装するのが非常に難しいか、あるいは不可能であることがわかるかもしれません!したがって、すべての実装はインターフェイスに基づいている必要がありますので、変更の場合は、アプリケーション全体でコードを変更する必要はありませんが、インターフェイスを実装する別のクラスを作成する必要はありません.これは正しい方法で書かれたコードでなければなりません.(上記のコードは正しい方法で書かなければなりません).class UsersController extends Controller
{
private $userRepository;
public function __construct(UserRepositoryInterface $userRepository)
{
$this->userRepository = $userRepository;
}
public function index()
{
$users = $this->userRepository->all();
return view('users.index', [
'users' => $users
]);
}
}
この特定の例では、クライアントがデータ構造を変更したいときに、それは我々のアプリケーションにこれらの変更を実装するために子供の遊びです!私たちは単にユーザリポジトリインターフェイスを実装するクラスを作成し、新しい方法でそれを引き出すことができるロジックを含んでいます.そういうわけで、クライアントが最も困難な変化で来るときでも、我々が簡単にそれに対処することができるように、コードを書くことはとても重要です.リポジトリテンプレートは大いにこのプロセスを容易にします!全体の記事をhttps://asperbrothers.com/blog/implement-repository-pattern-in-laravel/に行くを参照してください.
Reference
この問題について(Lavavelリポジトリパターン), 我々は、より多くの情報をここで見つけました https://dev.to/asperbrothers/laravel-repository-pattern-how-to-use-why-it-matters-1g9dテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol