在zend框架中自动要求静态调用文件


automatically requiring statically called files in zend framework

所以我知道,在Zend框架中,如果您的函数名称遵循某些路径约定,例如。Path_To_Function::function()当函数位于path/to/function(或类似的位置)时,ZF将自动在该位置包含所需的文件

但那不是我做....我所做的就是把所有我想包含的地方放入php include_path然后只需要文件,然后调用函数

像下面的

require_once('Class.php');
Class::something();

其中Class.php位于include_path

下的目录中

但是这是多余的,因为我已经在静态函数调用Class::something()中指定了类名,实际上我所有的函数都是静态的…

是否有办法配置/hack zend,以便如果我进行静态调用:

SomeClass::dosomething(); 

它将自动执行require_once('SomeClass.php')基于静态调用的类名?

把这个放到你的Bootstrap

protected function _initAutoloader()
{
    $autoloader = Zend_Loader_Autoloader::getInstance();
    $autoloader->setFallbackAutoloader(true);
    return $autoloader;
}

看到http://framework.zend.com/manual/en/zend.loader.autoloader.html zend.loader.autoloader.usage

实际上,您应该为类设置命名空间,因为这不仅使自动加载更容易,而且可以防止可能的冲突,例如

// library/My/Class.php
class My_Class { // ...
// library/My/SomeClass.php
class My_SomeClass { // ...

那么你只需要将命名空间前缀添加到应用程序配置中的自动加载器

autoloadernamespaces.My = "My_"