Skip to content

Commit

Permalink
Updated ModelManager
Browse files Browse the repository at this point in the history
  • Loading branch information
ablunier committed May 22, 2017
1 parent d5934d6 commit 7d9f37a
Showing 1 changed file with 5 additions and 9 deletions.
14 changes: 5 additions & 9 deletions src/Manager/Eloquent/ModelManager.php
Expand Up @@ -33,7 +33,7 @@ public function __construct(Application $app)
*/
public function getModelInstance($modelName)
{
$modelInstance = $this->app->make($modelName);
$modelInstance = new $modelName;

if (!$modelInstance instanceof EloquentModel) {
$message = "Target [$modelName] is not an Illuminate\Database\Eloquent\Model instance.";
Expand All @@ -51,25 +51,21 @@ public function getRepository($modelName)
{
$modelInstance = $this->getModelInstance($modelName);

$args = ['model' => $modelInstance];

if ($modelInstance instanceof HasCustomRepository) {
$repository = $this->app->make($modelInstance->repository(), $args);
$repositoryClass = $modelInstance->repository();
$repository = new $repositoryClass($modelInstance);

if (!$repository instanceof Repository) {
$message = "The [$modelName] custom repository must extend Ablunier\Laravel\Database\Repository\Eloquent\Repository.";

throw new \Exception($message);
}
} else {
$repository = $this->app->make('Ablunier\Laravel\Database\Repository\Eloquent\Repository', $args);
$repository = new \Ablunier\Laravel\Database\Repository\Eloquent\Repository($modelInstance);
}

if ($modelInstance instanceof HasCache && $modelInstance->cache() === true) {
return $this->app->make('Ablunier\Laravel\Database\Repository\Eloquent\Cache', [
'repository' => $repository,
'cache' => $this->app['cache.store'],
]);
return new \Ablunier\Laravel\Database\Repository\Eloquent\Cache($repository, $this->app['cache.store']);
}

return $repository;
Expand Down

0 comments on commit 7d9f37a

Please sign in to comment.