使用Zend Framework检查每个页面上的自定义条件

时间:2012-07-02 14:10:50

标签: php zend-framework

我需要检查我在网站上访问的每个页面上的条件。

基本上,用户帐户有时间限制,如果用户帐户已过期,我需要将它们重定向到续订页面,这样他们就可以登录系统,但只能访问续订页面。

我可以创建一个函数并在每个控制器的每个动作上调用它,但这没有任何意义,我也可以在bootstrap上做一些黑客攻击,但这似乎也不是正确的解决方案。

我怎样才能以正确的方式做到这一点?或者引导程序是正确的方法吗?

2 个答案:

答案 0 :(得分:5)

我认为实现这一目标的最佳方法是将Zend_Controller_Plugin_Abstract添加到您的应用程序并在preDispatch方法中实现逻辑。

您将能够执行检查并使用重定向器帮助程序重定向用户。

$redirector = Zend_Controller_Action_HelperBroker::getStaticHelper('Redirector');
$redirector->gotoSimpleAndExit('myaction', 'mycontroller', 'mymodule');

答案 1 :(得分:2)

一般来说 - 因为我缺乏Zend的知识 - 我会说认证层/类/无论放置这个逻辑的地方。

我认为这是一个集中的地方,您可以检查用户会话的有效性。您可以轻松地将此额外条件添加到此处。如果以不同的方式维护访问控制,则引导可能会更好。

您的选项总是有限的,因为您的应用程序可能只有1个单一访问点,或者在呈现用户请求的页面之前,每个请求都至少会有有限数量的类。

小心不要太严格地执行这些条件;例如,确保API请求(如果存在)不会转发到续订页面。