Laravel リポジトリ パターン、laravelrepository_PHP チュートリアル

WBOY
リリース: 2016-07-13 09:44:47
オリジナル
978 人が閲覧しました

Laravelリポジトリモード、laravelrepository

リポジトリモード

コードをクリーンで読みやすい状態に保つには、Repository Pattern 是非常有用的。事实上,我们也不必仅仅为了使用这个特别的设计模式去使用Laravel,然而在下面的场景下,我们将使用OOP的框架Laravel 去展示如何使用repositories 使我们的Controllerレイヤーを使用してコードの冗長性を減らし、より分離して読みやすくします。詳しく見てみましょう。

未使用repositories

実際に使ってみるRepositories并不是必要的,在你的应用中你完全可以不使用这个设计模式的前提下完成绝大多数的事情,然而随着时间的推移你可能把自己陷入一个死角,比如不选择使用Repositories会使你的应用测试很不容易,(swapping out implementations)具体的实现将会变的很复杂,下面我们看一个例子。
HousesController.php

リーリー

これは、Eloquent和数据库交互,这段代码工作的很正常,但是controller层对于Eloquent而言将是紧耦合的。在此我们可以注入一个repository を使用してコードの分離バージョンを作成する非常に典型的なコードです。このコードの分離バージョンにより、後続のプログラムの特定の実装が簡素化されます。

使用repositories

実際にrepositoryパターンをすべて完成させるにはかなりの手順が必要ですが、何度か完成させると自然と習慣になります。 以下に各手順を詳しく紹介します。

1.Repositoryフォルダーを作成

まず、app フォルダー内に独自の Repository フォルダーapp文件夹创建自己Repository 文件夹repositoriesを作成する必要があります。次に、フォルダー内の各ファイルに対応する名前空間を設定する必要があります。

2: 対応するInterfaceクラス

を作成する

2 番目のステップは、対応するインターフェイスを作成することです。これにより、以下の例に示すように、repository类必须要实现的相关方法,如下例所示,在此再次强调的是命名空间一定要记得加上。
HouseRepositoryInterface.php クラスが実装する必要がある関連メソッドが決まります。名前空間を追加する必要があることを再度強調します。

HouseRepositoryInterface.php

リーリー

Repository3: 対応する

クラス

を作成する repository类 来给我们干活了,在这个类文件中我们可以把我们的绝大多数的数据库查询都放进去,不论多么复杂。如下面的例子
DbHouseRepository.phpこれで、作業を実行するための

クラスを作成できます。このクラス ファイルには、どんなに複雑であっても、ほとんどのデータベース クエリを含めることができます。次の例のように

DbHouseRepository.php

リーリー

リーリー

4: バックエンドサービスプロバイダーを作成する
BackendServiceProvider.phpまず、いわゆるサービス提供について理解する必要があります。サービスプロバイダーのマニュアルを参照してください

リーリー

provider相关文件。
上面一段代码主要说的是,当你在controller层使用类型提示HouseRepositoryInterface,我们知道你将会使用DbHouseRepository リーリー

もちろん、主に provider 関連ファイルを保存する新しいフォルダーを作成することもできます。
上記のコードは主に、Providers Array レイヤーでタイプ ヒント HouseRepositoryInterface を使用する場合、DbHouseRepository を使用することがわかっていることを示しています。
5:

providers 到app/config/app.php 中的 providers数组里面,只需要在最后加上AppRepositoriesBackendServiceProvider::class,を更新する

実際、上記のコードでは依存関係の注入が既に実装されていますが、ここで使用したい場合は、より便利にするために、これを追加する必要があります

controller

6: 最後に、依存関係注入を使用して

Controller只需要简单的调用方法代替之前的复杂的数据库调用,如下面内容:
HousesController.php を更新します

上記の内容を完了したら、以下に示すように、以前の複雑なデータベース呼び出しの代わりに、Controller 内のメソッドを呼び出すだけです:

HousesController.php

リーリー

これで全体のモード変換は完了です

http://www.bkjia.com/PHPjc/1048733.htmlwww.bkjia.comtru​​ehttp://www.bkjia.com/PHPjc/1048733.html技術記事
Laravel リポジトリ パターン、laravelrepository リポジトリ パターン コードをクリーンで読みやすい状態に保つには、リポジトリ パターンを使用すると非常に便利です。実際、その必要はありません...
🎜🎜
関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!