我在哪里将用户定义的函数放在zend框架中。这些函数将在许多控件,视图或模型中跨框架使用。我需要将其转换为实用程序类吗?或者我可以将它保存为一组函数并将其包含在index.php中。
最佳做法是什么?
答案 0 :(得分:1)
通常,您可以将函数放入库中用于自动装载程序的类中。使用ZF的命名约定可以使生活更轻松
调整application.ini以添加命名空间。
<强>示例:强>
//application.ini
autoloaderNamespaces[] = "My_"
//this would equate to the folder My in the folder library
/application
/library
/My
//any class you built would be named My_Classname and be called in your app by Classname()
<?php
class My_Classname {
public function myFunction() {
}
}
//in your conrtoller for example you might call
public function indexAction() {
$class = new My_Classname();
$class->myFunction();
//or if you declared myFunction() static...
$class = My_Classname::myFunction();
}
答案 1 :(得分:0)
按照ZF目录结构制作:
为控制器制作动作助手并为视图查看助手:
在set_include_path中设置的库文件夹中:
create library/My/View/Helper/Common.php
如下所示:
class My_View_Helper_Common extends Zend_View_Helper_Abstract
{
public function common()
{
return $this;
}
public function getCity($id)
{
$registry = Zend_Registry::getInstance();
$DB = $registry['DB'];
$result = $DB->fetchPairs("select * from firm_dtl");
return $result;
}
}
或在视图中调用:
$this->common()->getCity($id);
动作助手的相同过程:
Make in library / My / Action / Helper / Common.php