リポジトリパターンを使うと、コントローラからデータアクセスのロジックを分離することができる。分離されたことでテストも容易になる。
インストール
1 2 3 4 |
$ composer require prettus/l5-repository $ composer require prettus/laravel-validation $ composer require league/fractal $ php artisan make:provider RepositoryServiceProvider |
app/Providers/RepositoryServiceProvider.php
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 |
<?php namespace App\Providers; use Illuminate\Support\ServiceProvider; class RepositoryServiceProvider extends ServiceProvider { /** * Bootstrap the application services. * * @return void */ public function boot() { // } /** * Register the application services. * * @return void */ public function register() { $repositories = [ // \App\Repositories\UserRepository::class, ]; foreach ($repositories as $repository) { $this->app->bind($repository, $repository.'Eloquent'); } } } |
config/app.php
1 2 3 4 5 |
'providers' => [ .... App\Providers\RepositoryServiceProvider::class, Prettus\Repository\Providers\RepositoryServiceProvider::class, ]: |
1 |
$ php artisan vendor:publish |
参考サイト
GitHub – andersao/l5-repository: Laravel 5 – Repositories to abstract the database layer
https://github.com/andersao/l5-repository
Using Repository Pattern in Laravel 5 – Bosnadev – Code Factory
https://bosnadev.com/2015/03/07/using-repository-pattern-in-laravel-5/?utm_source=prettus-l5-repository&utm_medium=readme&utm_campaign=prettus-l5-repository
Laravel4.2のリポジトリパターン | アライドアーキテクツ エンジニアブログ
http://tech.aainc.co.jp/archives/10227
Laravelでプロジェクトを作成したらまずやることメモ – Qiita
http://qiita.com/ponko2/items/f2f59b43dae1561ceb50#laravel-5-repositories%E3%81%AE%E8%A8%AD%E5%AE%9A