我正在尋找關於如何解決設計問題的建議。我目前使用Symfony框架,所以我將使用Symfony類的名稱。Symfony用戶框架設計問題
當用戶將成爲「認證」或Symfony的用戶類的「資格證書」的變化,一個重生的()被調用當前使用的存儲類。商店類擴展了sfStorage。
現在,當這種再生()命令是跑,我們需要做一些業務邏輯。下面是選項我想出迄今:
修改三個函數addCredential,removeCredential,setAuthenticated並告訴他們在分發事件(setAuthenticated已經這樣做了),所以我們知道該怎麼做我們的業務邏輯。
第二個選項是延長sfSessionStorage類,並告訴它在每個再生拋出一個事件。我遇到的問題是sfUser要求接口sfStorage。除非我們修改sfStorage,否則如果有人通過擴展sfStorage的任何類來擴展sfStorage而不知道添加事件,它將無法工作。
第三個選擇將是第二選擇,但我們仍然會擴展用戶對象說,我們需要發出一個通知上重新生成自定義sfStorage抽象類的接口。然後我們會確定任何通過的類都會遵循這種通知方法。
任何人有任何建議嗎?