PHP

Laravel リポジトリパターン

Laravel

 

リポジトリパターンのスタイルにするのが勝ちパターンみたいなので覚える。

確かにわかりやすいし、テストしやすくなる。

  • テストの切り分け
    本来はコントローラのテストだけ、DBのテストと別でテストできるものでなくてはならない

 

下記サイトを参考にやってみました。
https://www.ritolab.com/entry/165

 

/database/factories/UserFactory.php

こんな風になっている。

 

シーダでシーダファイルを作成する

 

 

/database/seeds/UsersTableSeeder.php

 

 

/database/seeds/DatabaseSeeder.php

 

サンプルのレコードをシーディングします。

 

QueryBuilderでの実装のUserQBRepositoryクラス, Eloquentでの実装でのUserEQRepositoryで実装先を2つ作る。

 

 

/Repositories/User/UserRepositoryInterface.php

 

QueryBuildを利用する場合、Eloquentを利用する場合で実装先を2つ作ります。これをメソッドインジェクションを利用して切り替えることができるようにします。

 

/Repositories/User/UserQBRepository.php

 

/Repositories/User/UserEQRepository.php

 

 

サービスプロバイダの作成

 

/Providers/RepositoryServiceProvider.php

 

 

/config/app.php

 

コントローラの作成

 

/app/Http/Controller/UserController.php

index()の引数にインターフェイスを指定することで、メソッドインジェクションを行う。

 

実装の切り替え

 

実装先を入れ替えることで切り替えることができる

 

 

 

@see

 

 

 

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)