我需要检查我在网站上访问的每个页面上的条件。
基本上,用户帐户有时间限制,如果用户帐户已过期,我需要将它们重定向到续订页面,这样他们就可以登录系统,但只能访问续订页面。
我可以创建一个函数并在每个控制器的每个动作上调用它,但这没有任何意义,我也可以在bootstrap上做一些黑客攻击,但这似乎也不是正确的解决方案。
我怎样才能以正确的方式做到这一点?或者引导程序是正确的方法吗?
答案 0 :(得分:5)
我认为实现这一目标的最佳方法是将Zend_Controller_Plugin_Abstract
添加到您的应用程序并在preDispatch
方法中实现逻辑。
您将能够执行检查并使用重定向器帮助程序重定向用户。
$redirector = Zend_Controller_Action_HelperBroker::getStaticHelper('Redirector'); $redirector->gotoSimpleAndExit('myaction', 'mycontroller', 'mymodule');
答案 1 :(得分:2)
一般来说 - 因为我缺乏Zend的知识 - 我会说认证层/类/无论放置这个逻辑的地方。
我认为这是一个集中的地方,您可以检查用户会话的有效性。您可以轻松地将此额外条件添加到此处。如果以不同的方式维护访问控制,则引导可能会更好。
您的选项总是有限的,因为您的应用程序可能只有1个单一访问点,或者在呈现用户请求的页面之前,每个请求都至少会有有限数量的类。
小心不要太严格地执行这些条件;例如,确保API请求(如果存在)不会转发到续订页面。