リポジトリパターンを使うと、コントローラからデータアクセスのロジックを分離することができる。分離されたことでテストも容易になる。
インストール
$ composer require prettus/l5-repository $ composer require prettus/laravel-validation $ composer require league/fractal $ php artisan make:provider RepositoryServiceProvider
app/Providers/RepositoryServiceProvider.php
<?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
'providers' => [ .... App\Providers\RepositoryServiceProvider::class, Prettus\Repository\Providers\RepositoryServiceProvider::class, ]:
$ 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