morilog / flexible-repository
为 Laravel 框架提供灵活且强大的仓库
v0.1.4
2016-11-12 10:51 UTC
Requires
- illuminate/database: >=5.1
- illuminate/pagination: >=5.1
- illuminate/support: >=5.1
Requires (Dev)
- phpunit/phpunit: ~4.0
README
Laravel 包,用于创建灵活且强大的仓库
安装
composer require morilog/flexible-repository
用法
创建仓库
为 Eloquent 创建
- 创建一个从
Morilog\FlexibleRepository\Contracts\RepositoryInterface
扩展的interface
<?php namesapce App\Reposiotries; use Morilog\FlexibleRepository\Contracts\RepositoryInterface; interface UserRepository extends RepositoryInterface { }
- 为您的模型创建一个从
Morilog\FlexibleRepository\BaseEloquentRepository
扩展并实现您的声明的interface
的类
<?php namespace App\Repositories; use Morilog\FlexibleRepository\BaseEloquentRepository; use App\Models\User; class EloquentUserRepository extends BaseEloquentRepository implements UserRepository { protected function model() { return User::class; } }
- 将您的仓库绑定到实现类
<?php namespace App\Providers; use Illuminate\Support\ServiceProvider; use App\Repositories\UserRepository; use App\Repositories\EloqeuntUserRepository; class RepositoryServiceProvider extends ServiceProvider { public function register() { $this->app->bind(UserRepository::class, function ($app) { return new EloquentUserRepository($app); }); // or // $this->app->bind(UserRepository::class, EloquentUserRepository::class); } }
- 在类和控制器方法中注入您的仓库
<?php namespace App\Http\Controllers; use App\Repositories\UserReposiotry; class UsersController extends Controller { public function index(UserRepository $repository) { return $repository->all(); } }