1
我试图使我的代码尽可能可测试,这意味着正确使用依赖注入。在依赖注入的构造函数中混合服务和叶对象?
我读过,可以使用new()来实例化一个对象,如果该对象为meets certain criteria。值得注意的是 - 它不应该在其构造函数中接受“不可新的”。
举例来说,我应该能够去
new Form('signup');
,因为没有办法,我的DI容器会知道如何提前创建的“注册”的形式。
我可以做这项工作的大部分时间,但现在我想的形式能够验证本身,使用第三方验证,如:
$form->validate()->isValid();
...这意味着我将不得不通过验证器服务。
我真的希望已经包含验证器,因为大部分时间表单需要验证,而且我必须经过额外的工作才能自行设置验证器。
它是好的,在这种情况下要做到:
new Form(Validator $validator,$name);