laravel repository 求解?

假设:通过配置文件可以切换数据存储驱动,比如数据存放在 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');
    }
}

如何更改绑定方式,达到上述目的。谢谢。

慕慕森
浏览 539回答 1
1回答
打开App,查看更多内容
随时随地看视频慕课网APP