Php Symfony用户框架设计问题

Php Symfony用户框架设计问题,php,symfony1,Php,Symfony1,我正在寻找关于如何解决我提出的设计问题的建议。我目前正在使用Symfony框架,因此我将使用Symfony类的名称 当用户在Symfony用户类中进行“身份验证”或其“凭据”更改时,将对当前使用的存储类调用REGENATE()。store类扩展了sfStorage 现在,当运行REGENATE()命令时,我们需要执行一些业务逻辑。到目前为止,我提出了以下选项: 修改addCredential、removeCredential、setAuthenticated三个函数,并告诉它们发送事件(set

我正在寻找关于如何解决我提出的设计问题的建议。我目前正在使用Symfony框架,因此我将使用Symfony类的名称

当用户在Symfony用户类中进行“身份验证”或其“凭据”更改时,将对当前使用的存储类调用REGENATE()。store类扩展了sfStorage

现在,当运行REGENATE()命令时,我们需要执行一些业务逻辑。到目前为止,我提出了以下选项:

  • 修改addCredential、removeCredential、setAuthenticated三个函数,并告诉它们发送事件(setAuthenticated已经发送了),以便我们知道如何执行业务逻辑

  • 第二种选择是扩展sfSessionStorage类,并告诉它在每次重新生成时抛出一个事件。我遇到的问题是sfUser请求接口sfStorage。除非我们修改sfStorage,否则如果有人传递了任何类型的类来扩展sfStorage,而这些类不知道如何添加事件,那么它将无法工作

  • 第三个选项是第二个选项,但我们仍然要扩展user对象,说我们需要自定义sfStorage抽象类的接口,该类在重新生成时发送通知。然后我们就可以确定通过的任何类都将遵循这个通知方法


有人有什么建议吗?

我会选择第二个选项,扩展
sfSessionStorage
类,然后通过将该类插入
工厂.yml
来使用该类

这不会导致
sfUser
出现任何问题,因为您的自定义存储类将通过代理从
sfStorage
扩展