gpt4 book ai didi

php - 我可以在所有 Controller 中使用的用户定义函数

转载 作者:可可西里 更新时间:2023-11-01 13:47:57 24 4
gpt4 key购买 nike

我有一个项目,我正在使用 ZendFramework,我也是这个框架的新手。

所以我的问题是,

我想创建一个我可以在所有 Controller 中使用的用户定义函数。示例:我想创建一个函数来验证我将在其中使用 trim、htmlspecialchars 和 mysql_real_escape_string 的输入字段。我想在所有 Controller 中访问此功能。

我有一个解决方案,我会在我拥有的每个 Controller 中创建这个函数,我认为这不是最好的解决方案。

谢谢

最佳答案

基本 Controller 是一种解决方案,但对我来说不是最好的。您应该编写您自己的Action Helper,它们是用来做的。

Action Helpers allow developers to inject runtime and/or on-demand functionality into any Action Controllers that extend Zend_Controller_Action. Action Helpers aim to minimize the necessity to extend the abstract Action Controller in order to inject common Action Controller functionality.

更多信息 here in the manual .

让我们看看如何注册您的 Action Helper 路径,将其添加到您的 application.ini 中:

resources.frontController.actionHelperPaths.My_Controller_Action_Helper = "My/Controller/Action/Helper/"

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;
}
}

这就是您需要做的全部!最后,您可以使用 $this->_helper->myActionHelper($input); 从任何 Controller 访问您的操作助手。

如果您需要验证来自表单的输入,请查看 Zend_FormZend_Filter . Zend_Filter 可以原生 StripTagsTrimString ,这是一种更好的方法。

关于php - 我可以在所有 Controller 中使用的用户定义函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9867418/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com