Zend framework 了解Zend_控制器_请求_抽象和其他核心Zend类
我正在深入挖掘Zend框架,现在我有点困惑。我特别检查了Zend_控制器_操作(*_操作)、Zend_控制器_请求_HTTP(*_HTTP)和Zend_控制器_请求_摘要(*_摘要) 顾名思义*\u抽象类是一个抽象类,因此无法实例化,它主要提供方法存根和一些最终实现。实际实现是在*\uHTTP和*\u子类*\u Abstract的简单类中。很公平 现在我看的是*_动作类,就在这里: 查看$\u请求变量,它声明它是*\u Abstract类型的实例。在这一点上,我感到困惑,因为我不知道为什么它应该是*\u Abstract类型而不是*\u Http类型,因为从技术上讲,不能有一个抽象类的实例 因此,我的问题是:Zend framework 了解Zend_控制器_请求_抽象和其他核心Zend类,zend-framework,abstract-class,subclass,overriding,Zend Framework,Abstract Class,Subclass,Overriding,我正在深入挖掘Zend框架,现在我有点困惑。我特别检查了Zend_控制器_操作(*_操作)、Zend_控制器_请求_HTTP(*_HTTP)和Zend_控制器_请求_摘要(*_摘要) 顾名思义*\u抽象类是一个抽象类,因此无法实例化,它主要提供方法存根和一些最终实现。实际实现是在*\uHTTP和*\u子类*\u Abstract的简单类中。很公平 现在我看的是*_动作类,就在这里: 查看$\u请求变量,它声明它是*\u Abstract类型的实例。在这一点上,我感到困惑,因为我不知道为什么它应该
$_request = new RequestClass(); //RequestClass subclasses Zend_Controller_Request_Http and overrides getParams()
我的应用程序没有按它应该的方式启动(我得到一个空白屏幕)
对于那些更好奇的人来说,RequestClass()getParams()除了:
getParams()
{
$params = parent::getParams();
//sanitization rules over $params;
return $params;
}
Zend\u Controller\u Request\u Abstract
的类型提示实际上意味着请求必须是扩展Zend\u Controller\u Request\u Abstract
的类的实例
除非您谨慎地不使用ZF的路由,否则最好通过路由对参数进行清理。否则,如果您得到一个空白屏幕,这意味着
display\u errors
将被关闭,而PHP错误或异常将被记录。查看web服务器错误日志以了解实际问题。能否详细说明通过ZF路由进行的清理?您可以在路由中指定参数应匹配特定的集或值,或特定的正则表达式模式。这里的示例:(ZF1)谢谢Tim,您链接我的示例似乎只针对URL参数,我不太了解如何使用ZF路由设置POST参数的可变要求。特别是,我只是试图在appAvoiding XSS中阻止Javascript(标记),这是您应该在视图级别执行的操作-$this->escape($something)
,而不是在请求参数级别执行的操作。是的,但这是在我的输出中转义数据,从输入角度来看,这更像是一种安全预防措施