浏览器检测和Zend MVC

时间:2010-03-18 18:08:03

标签: php zend-framework

我有一个使用Zend MVC框架的PHP应用程序。应用程序的每个请求的入口点都在/public/index.php。

我有一个Browser类,它具有检查用户浏览器是否与应用程序兼容的功能。

我的困境是,index.php是为每个控制器调用执行的。因此,该文件有可能在同一页面内多次执行,因此重定向成为一个问题。解决循环问题的最佳方法是什么?

由于

3 个答案:

答案 0 :(得分:1)

关于你的“困境”,这听起来像是一个完全不同的问题,我真的会避免在每个控制器调用上调用index.php。这是我认为的根本问题。如果必须,我想您可以使用会话来跟踪用户对各个页面的调用。

但是index.php应该只是一个入口点,任何进一步执行的代码逻辑都应该完全没有意识到它的存在。

关于浏览器检测:

据我所知,目前还没有确定的ZF组件可以为您确定浏览器。有两种方法可以解决这个问题。一种是使用$_SERVER["HTTP_USER_AGENT"]基于用户代理字符串检查浏览器。

另一方面,当然是客户端检测。大多数JS库提供了执行此操作的方法;因为大多数jQuery用户都知道jQuery已弃用其jQuery.browser功能,但它们目前仍然可用。

正如http://docs.jquery.com/Utilities/jQuery.browser所示,建议您检查客户端浏览器检测,以检查所需的特定功能。

答案 1 :(得分:1)

您应该在前端控制器插件中执行此操作。根据您的调度过程,有几种方法被调用。

查看http://framework.zend.com/manual/en/zend.controller.plugins.html

答案 2 :(得分:-1)

$i = 0;

if ($i === 0)
{
   // put everything currently in index.php into here

   $i++;
}