一、建立文件夹●app
●Repositories
●Interfaces
●Repositories
二、创建接口
在interfaces目录下创建文件PostInterface.php<?php
namesapce
App\Repositories\Interfaces;
Interface PostInterface{
public function postAll();
}
三、创建实现
在Repositories目录下创建文件PostRepository.php<?php
namesapce App\Repositories\Repositories;
use App\
Repositories\Interface\PostInterface;
use App\Models\Post;
class PostRepository Implements PostInterface{
public function postAll()
{
$query = Post::all();
return $query;
}
四、绑定服务
1.创建RepositoryServiceProvider.phpphp artisan make:provider RepositoryServiceProvider
2.打开app/Providers/AppServiceProvider, 在register() 加入代码:<?php
namespace App\Providers;
use Illuminate\Support\ServiceProvider;
class AppServiceProvider extends ServiceProvider
{
public function boot()
{
}
public function register()
{
$this->app->bind('App\Repositories\Interfaces\PostInterface', 'App\Repositories\Implements\PostRepository');
}
}
五、测试仓库
回到PostController;<?php
namespace app\Http\Controllers\PostController;
use App\Repositories\Interfaces\PostInterface;
class PostController extend Controller{
protected $postRepo;
public function __construct(PostInterface $postRepo)
{
$this->postRepo = $postRepo;
}
public function index()
{
$this->postRepo->postAll();
}