我有一些問題,誤解Laravel SP(ServiceProvider)。我有抽象類庫和她的接口:DI,ServiceProvider,抽象父和Laravel 5.3
abstract class Repository implements RepositoryInterface {
private $model;
private $parser;
public function __construct() {
$this->model = new $this->model_name();
} }
interface RepositoryInterface {
public function create(array $attributes);
public function update($id, array $attributes);
public function delete($id);
public function all();
public function find($id);
public function filter(array $parameters, $query=null);
public function query(array $parameters, $query=null); }
和例如一些孩子UserRepository:
class UserRepository extends Repository implements UserRepositoryInterface {
protected $model_name = "App\Models\User";
public function __construct() {
parent::__construct();
}
public function activation($user_id) {
return "user";
}
public function deactivation($user_id) {
return "user";
} }
和簡單ModelParser類:
class ModelParser {
protected $parameters;
protected $model;
public function __construct($model) {
$this->model = $model;
} }
這項工作很好,但我會通過ModelParser
作爲DI在我的抽象Repository
構造與參數$model
。我沒有想法。我應該怎麼做?
我用這樣的:
class UserController extends Controller {
private $repository;
public function __construct(UserRepository $repository) {
$this->repository = $repository;
} }
是的,這對我有很大的幫助。我以另一種方式做了,但我想用DI做點什麼。謝謝! – gargi258