假设:通过配置文件可以切换数据存储驱动,比如数据存放在 mysql,然后修改配置文件变为 redis。
目前我的伪代码如下:
1:建立一个接口
<?php
namespace App\Repositories\Interfaces;
Interface CategoryInterface
{
public function getAll();
public function setData();
}
2:建立两个 Repository,分别对应mysql,redis数据库操作。
<?php
namespace App\Repositories\Implement;
use App\Repositories\Interfaces\CategoryInterface;
class CategoryMysqlRepository implements CategoryInterface
{
public function getAll()
{
// TODO: Implement getAll() method.
}
public function setData()
{
// TODO: Implement setData() method.
}
}
<?php
namespace App\Repositories\Implement;
use App\Repositories\Interfaces\CategoryInterface;
class CategoryRedisRepository implements CategoryInterface
{
public function getAll()
{
// TODO: Implement getAll() method.
}
public function setData()
{
// TODO: Implement setData() method.
}
}
3:进行绑定
<?php
namespace App\Providers;
use Illuminate\Support\ServiceProvider;
class AppServiceProvider extends ServiceProvider
{
/**
* Bootstrap any application services.
*
* @return void
*/
public function boot()
{
//
}
/**
* Register any application services.
*
* @return void
*/
public function register()
{
$this->app->bind('App\Repositories\Interfaces\CategoryInterface',
'App\Repositories\Implement\CategoryMysqlRepository');
}
}
如何更改绑定方式,达到上述目的。谢谢。