<?php
class RepositoryResolver {
protected $repos = [];
const DEFAULT_REPO = BaseRepository::class;
public functuion __construct(Application $app)
{
$this->app = $app;
}
public function addRepo($model, $repository)
{
$this->repos[$model] = $respository;
}
public function resolve($model)
{
if(isset($this->repos[$model])){
return $this->app->make($model);
}
return $this->getDefaultRepository($model);
}
public function getDefaultRepository($model)
{
return $this->app->make(static::DEFAULT_REPO, compact('model'));
}
}