【问题标题】:Symfony user framework design problemSymfony 用户框架设计问题
【发布时间】:2010-06-21 22:16:34
【问题描述】:

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

当用户在 Symfony 用户类中被“认证”或他们的“凭证”改变时,在当前使用的存储类上调用 regenerate()。 store 类扩展了 sfStorage。

现在,当这个 regenerate() 命令运行时,我们需要做一些业务逻辑。以下是我到目前为止提出的选项:

  • 修改 addCredential、removeCredential、setAuthenticated 三个函数并告诉它们调度一个事件(setAuthenticated 已经这样做了),这样我们就知道要执行我们的业务逻辑了。

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

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

大家有什么建议吗?

【问题讨论】:

    标签: php symfony1


    【解决方案1】:

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

    这不会对sfUser 造成任何问题,因为您的自定义存储类将通过代理从sfStorage 扩展。

    【讨论】:

      猜你喜欢
      • 2010-09-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-11-20
      • 1970-01-01
      • 2012-01-18
      • 2011-04-15
      相关资源
      最近更新 更多