Zend Framework中的默认用户设置策略

时间:2011-07-11 16:51:06

标签: zend-framework

我的网站根据用户选择的位置具有不同的功能。每个位置都有该位置唯一的事件。这些事件是用户访问该网站的主要原因。

除非为用户选择了位置,否则网站的某些关键区域无法导航。因此,必须假定位置,直到所选位置已知 - 我计划使用一些基本的GeoIP查找。

所以要求基本归结为:

  1. 必须在加载网站上的任何页面之前设置位置
  2. 用户可以更改位置设置
  3. 位置设置必须保持从请求
  4. 布局和视图应该可以访问此设置,这将是大多数控制器的先决条件
  5. 我可以想到一些方法来解决这个问题(Zend_Registry,自定义Zend_Session_Namespace等),但我很好奇是否没有更广泛确定的策略来解决这类问题。

2 个答案:

答案 0 :(得分:1)

我认为这类似于使用i18n设置网站的语言,所以我会以类似的方式实现。 Id可能将位置存储在会话值中,或者如果用户已注册,则显然可以将其保存到其设置/配置文件中,无论使用何种后端存储机制。您也可以将此位置添加到路径参数中,这通常是通过i18n完成的,但考虑到地理位置而不仅仅是区域设置,这可能会变得混乱。

答案 1 :(得分:1)

我认为Zend_Registry可能不符合您的需求,因为它只会在单个请求期间在整个应用程序中提供位置设置,但不会保留。

如果您需要在请求之间保持这些设置,那么您最好(也很可能)的选择是Zend_Session

对于#1,我建议使用控制器插件。