Php 什么时候控制器不是Zend_控制器_请求_Http

Php 什么时候控制器不是Zend_控制器_请求_Http,php,zend-framework,Php,Zend Framework,我一直在许多插件中看到这行代码。它到底做什么?除了请求Http之外还有什么其他的可能性 if (!$request instanceof Zend_Controller_Request_Http) return; 通过筛选Zend Framework文档,我发现Zend_Controller_Request_Http的同级类是Zend_Controller_Request_Simple,用于获取有关对ZF应用程序的命令行请求的信息。所讨论的插件可能只适用于使用浏览器(或任何HTTP客户

我一直在许多插件中看到这行代码。它到底做什么?除了请求Http之外还有什么其他的可能性

if (!$request instanceof Zend_Controller_Request_Http)
    return;

通过筛选Zend Framework文档,我发现
Zend_Controller_Request_Http
的同级类是
Zend_Controller_Request_Simple
,用于获取有关对ZF应用程序的命令行请求的信息。所讨论的插件可能只适用于使用浏览器(或任何HTTP客户端)请求的web应用程序,因此这些插件会以其他方式退出。

通过Zend Framework文档筛选,我发现
Zend\u Controller\u Request\u HTTP
的兄弟类是
Zend\u Controller\u Request\u Simple
,用于获取有关对ZF应用程序的命令行请求的信息。所讨论的插件可能只适用于使用浏览器(或任何HTTP客户端)请求的web应用程序,因此这些插件会以其他方式退出。

即使每个类都不寻常,也会发生扩展。

即使每个类都不寻常,这种扩展可能会发生。

我相信,最初ZF的所有路由都是基于请求URI的,因此许多路由类都是基于$REQUEST操作的,而$REQUEST是一个字符串。为了方便子域的路由等工作,对其进行了更改,以便传入整个请求对象。因此,在调用$request的方法之前,您的示例中的检查只是检查$request是否是请求对象(而不是字符串)


(免责声明:这是基于我对ZF路由类的了解而做出的推测,我可能错了!)

我认为,最初ZF的所有路由都基于请求URI,因此许多路由类都是基于$REQUEST操作的,而$REQUEST是一个字符串。为了方便子域的路由等工作,对其进行了更改,以便传入整个请求对象。因此,在调用$request的方法之前,您的示例中的检查只是检查$request是否是请求对象(而不是字符串)

(免责声明:这是基于我对ZF路由类的了解的推测,我可能错了!)