閱讀書從學徒到工匠和實施Laravel通過Chris Fidao,現在我不知道如何正確使用存儲庫中的模型。Laravel 4:如何正確使用存儲庫中的模型
實施laravel書的作者正在與模型是這樣的:
例子#1
<?php
use MyApp\Interfaces\UserInterface;
use Illuminate\Database\Eloquent\Model;
class UserRepository implements UserInterface
{
protected $user;
public function __construct(Model $user)
{
$this->user = $user;
}
public function find($userId)
{
return $this->user->find($userId);
}
}
但是可以在其他的方式被完成,而不是注射模型作爲依賴,像此:
實施例#2 內置例如使用教程http://culttt.com/2013/07/08/creating-flexible-controllers-in-laravel-4-using-repositories/
<?php
use MyApp\Interfaces\UserInterface;
use MyApp\Models\User\User;
class UserRepository implements UserInterface
{
public function find($userId)
{
return User::with('profile')->find($userId);
}
}
爲什麼在第一個示例中注入模型,爲什麼不直接使用模型如同示例二?
哪種方式是正確的,爲什麼?
另外哪種方式更易測試,集成到laravel UnitTest包中?