Sup*_*oob 5 php zend-framework
我有一个项目,我正在使用ZendFramework,我也是这个框架中的新手.
所以我的问题是,
我想创建一个用户定义的函数,我可以在所有控制器中使用它.示例:我想创建一个函数来验证输入字段,我将在其中使用trim,htmlspecialchars和mysql_real_escape_string.我想在所有控制器中访问此功能.
我有一个解决方案,我将在我拥有的每个控制器中创建此功能,我认为这不是最好的解决方案.
谢谢
基本控制器是一种解决方案,但对我来说不是最好的.你应该编写自己的Action Helper,他们应该这样做.
Action Helpers允许开发人员将运行时和/或按需功能注入任何扩展Zend_Controller_Action的Action Controller.Action Helpers旨在最大限度地减少扩展抽象Action Controller的必要性,以便注入通用的Action Controller功能.
手册中有更多信息.
让我们看看如何注册Action Helper路径,在application.ini中添加:
resources.frontController.actionHelperPaths.My_Controller_Action_Helper = "My/Controller/Action/Helper/"
Run Code Online (Sandbox Code Playgroud)
其中My是您自定义库的名称.
在路径中,My/Controller/Action/Helper/您可以添加如下文件MyActionHelper.php:
class My_Controller_Action_Helper_MyActionHelper extends Zend_Controller_Action_Helper_Abstract
{
public function direct($input)
{
$output = mysql_real_escape_string($input);
// trim, etc.
return $output;
}
}
Run Code Online (Sandbox Code Playgroud)
这就是你需要做的!最后,您可以使用任何控制器访问您的操作助手$this->_helper->myActionHelper($input);.
如果您需要验证来自表单的输入,请查看Zend_Form和Zend_Filter.Zend_Filter本身可以使用StripTags和TrimString,它甚至是一种更好的方法.