我正在寻找关于如何解决设计问题的建议。我目前使用Symfony框架,所以我将使用Symfony类的名称。Symfony用户框架设计问题
当用户将成为“认证”或Symfony的用户类的“资格证书”的变化,一个重生的()被调用当前使用的存储类。商店类扩展了sfStorage。
现在,当这种再生()命令是跑,我们需要做一些业务逻辑。下面是选项我想出迄今:
修改三个函数addCredential,removeCredential,setAuthenticated并告诉他们在分发事件(setAuthenticated已经这样做了),所以我们知道该怎么做我们的业务逻辑。
第二个选项是延长sfSessionStorage类,并告诉它在每个再生抛出一个事件。我遇到的问题是sfUser要求接口sfStorage。除非我们修改sfStorage,否则如果有人通过扩展sfStorage的任何类来扩展sfStorage而不知道添加事件,它将无法工作。
第三个选择将是第二选择,但我们仍然会扩展用户对象说,我们需要发出一个通知上重新生成自定义sfStorage抽象类的接口。然后我们会确定任何通过的类都会遵循这种通知方法。
任何人有任何建议吗?