1
我試圖使我的代碼儘可能可測試,這意味着正確使用依賴注入。在依賴注入的構造函數中混合服務和葉對象?
我讀過,可以使用new()來實例化一個對象,如果該對象爲meets certain criteria。值得注意的是 - 它不應該在其構造函數中接受「不可新的」。
舉例來說,我應該能夠去
new Form('signup');
,因爲沒有辦法,我的DI容器會知道如何提前創建的「註冊」的形式。
我可以做這項工作的大部分時間,但現在我想的形式能夠驗證本身,使用第三方驗證,如:
$form->validate()->isValid();
...這意味着我將不得不通過驗證器服務。
我真的希望已經包含驗證器,因爲大部分時間表單需要驗證,而且我必須經過額外的工作才能自行設置驗證器。
它是好的,在這種情況下要做到:
new Form(Validator $validator,$name);