Zend:在执行控制器之前执行某些操作
在我的 Zend 框架项目中,我想检查是否设置了 cookie。如果是这种情况,我想使用 cookie 内容来登录用户。
由于我有必要在调用任何控制器之前执行此自动登录,因此我尝试将其放入 Bootstrap 中。我想检查数据库中的用户信息是否有效。不幸的是,此时默认数据库适配器尚未初始化。
所以我的问题如下:我应该在哪里放置那些在调用任何控制器之前以及在完成所有初始化/引导内容之后应该执行的内容?
In my Zend framework project I want to check whether a cookie is set. If it is the case I want to use the cookie contents to login a user.
Since it is neccessary for me to do this automatic login before any controller is called I tried to put it in the Bootstrap. There I want to check the database if the user information is valid. Unfortunately at this point the default database adapter is not yet initialized.
So my question is the following: Where do I put those stuff that should be executed before any controller is called and after all initializing/bootstrapping stuff is done?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
我对 Zend Framework 没有很好的经验,但我认为您应该创建一个自定义通用控制器,例如扩展 Zend_Controller_Action 的 GenericController 并将代码放入 preDispatch() 函数中。然后,您的所有控制器都将是自定义控制器的子类,例如:
I'have not a great experience with Zend Framework but I think you should create a custom generic controller for example GenericController that extends the Zend_Controller_Action and put your code in the preDispatch() function. All your controllers will then a subclass of your custom controller, for example:
使用这些方法:
在您的类中实现它们,init 在创建时运行,预调度在您的操作方法之前运行 iirc
api
在我上面链接的那个页面上它指出
Use the methods:
implement them in your class, init runs at creation, predispatch runs right before your action method iirc
api
On that page I linked above it states