如何在Zend Framework中使用自己的函数和/或类


how to use your own functions and/or classes in Zend Framework?


自从我开始编码以来,我一直在创建我的一组函数,我想在Zend Framework 1.12的整个项目中使用这些函数
我知道我可以放在库中创建的文件夹中,但我正在寻找一种不同的方式来使用我的函数
如果我把我的函数放在:

.../library/myfunctionsfolder/myfunctions.php

当我需要使用这个文件中的任何函数时,我必须在每个控制器中包含这个文件
然而,我正在寻找一种方法,我可以直接从任何控制器中的文件中调用函数,而不必包括该文件
例如:

my_function($some_var);

我应该把这个文件包括在Zend_Controller中吗?还是这个主意不好
我该怎么做
感谢您的帮助

就像我说的,以下几点对ZF1都有效:函数的自动加载器

如果你真的喜欢使用函数并想预加载它们,那么最好的地方就是Bootstrap.hp.

因此,在Application'Bootstrap.php中,只需创建一个前缀为_init:的新方法

protected function _initPreloading()
{
    include LIBRARY_PATH."/myfunctionsfolder/myfunctions.php";
    include LIBRARY_PATH."/myfunctionsfolder/myfunctions2.php";
}
/* For those who does not know how to address the library (in case you cannot use LIBRARY_PATH) You can use this:
include ( APPLICATION_PATH . '/../library/Customfunctions/functions.php'); */

为此,您需要在application.ini中使用以下2行:

bootstrap.path = APPLICATION_PATH "/Bootstrap.php"
bootstrap.class = "Bootstrap"

更新:

为了使用LIBRARY_PATH,我在index.php中包含了以下内容:

// Define path to library directory
defined('LIBRARY_PATH') 
    || define('LIBRARY_PATH', realpath(dirname(__FILE__) . '/../library'));

关于引导的更多信息:引导

另一种方法是使用控制器插件进行条件预加载。如果您只需要控制器中的某些功能。

关于如何编写插件的更多信息:插件