假设我有一个控制器来处理我的应用程序中的登录/注册/密码恢复等。我想在不同的模块和控制器之间共享它。最好的方法是什么?
我应该做一个动作助手,还是使用继承?当然,我不是指这些动作的逻辑,它们是由模型实现的(每个模块都不同),我只是想共享通用参数、解释并将结果传递给视图。
我的目标是为我的项目中的那些东西做某种通用库。所以我会有一些抽象的用户模型,所有其他想要使用登录/注册功能的模型都将从中继承,但我想知道控制器的东西是什么。
任何想法?
假设我有一个控制器来处理我的应用程序中的登录/注册/密码恢复等。我想在不同的模块和控制器之间共享它。最好的方法是什么?
我应该做一个动作助手,还是使用继承?当然,我不是指这些动作的逻辑,它们是由模型实现的(每个模块都不同),我只是想共享通用参数、解释并将结果传递给视图。
我的目标是为我的项目中的那些东西做某种通用库。所以我会有一些抽象的用户模型,所有其他想要使用登录/注册功能的模型都将从中继承,但我想知道控制器的东西是什么。
任何想法?
基本上我认为您要创建的是 widgets 。这是 ZF 团队负责人http://weierophinney.net/matthew/archives/246-Using-Action-Helpers-To-Implement-Re-Usable-Widgets.html的一篇很棒的文章如何使用动作助手创建它们。
创建可重用的身份验证服务是您想要做的。将其创建为服务允许您单独测试它。将服务注入前端控制器插件,以便在每个请求期间运行它。实际检查可以封装到自定义验证器中,因此您可以简单地调用 ->isValid()。如果无效,请重新路由到登录页面。