Laravel IoC多子类绑定:如何确保它能够正确解析

时间:2014-02-11 07:11:33

标签: php laravel-4 inversion-of-control ioc-container

由于我的英语,标题会模糊不清。希望有人能改进它。

以下是:

我有一个抽象类Validator

目前,我有两个子类LoginValidatorSignupValidator,它们从Validator延伸。

我有两项服务:LoginServiceSignupService,他们也有相同的服务 function __construct(Validator $validator)

我写了两个ServiceProvider来绑定Validator

LoginServiceProvider.php

$this->app->bind('Validators\Validator','Validators\LoginValidator');

SignupServiceProvider.php

$this->app->bind('Validators\Validator','Validators\SignupValidator');

因此,$validator中的__construct(Validator $validator)实际上始终已解析为SignupValidator我知道原因。

我想知道是否有办法确保:

class LoginService {
  //$validator will be LoginValidator
  function __construct(Validator $validator){}

}

class SignupService {
  //$validator will be SignupValidator
  function __construct(Validator $validator){}
}

我错了,我应该做__construct(LoginValidator $validator)

1 个答案:

答案 0 :(得分:0)

有人here at Laravel.io回答了这个问题 我发现它很有用,所以我在这里发布链接 -Thanks