You dont have to have to do that. Just inject the right class in the constructor. In my opinion theres no need to try and abstract any more away, than what you have already done.
use PathToClass\LoginValidator;
class LoginService {
protected $validator;
function __construct(LoginValidator $validator){
$this->validator = $validator;
}
}
Thanks @Herlevsen
That's what I'm doing now.
I'm pretty new to OOP and I'd like to stick to the best practice all the time.
Saw some laravel videos doing this for subclass so I think I should do this too and then stuck at this...
Why wouldn't this be best practice? Your Login Service will ALWAYS be validated by the LoginValidator. Even if you some time want to switch to a more advanced (Login)Validator, you can still extend LoginValidator, so that the injection still works.
It doesn't make sense to use an abstract validator, when you know which one it will be.
Sign in to participate in this thread!
The Laravel portal for problem solving, knowledge sharing and community building.
The community