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

时间:2011-10-26 06:00:27

标签: php zend-framework

所以我知道在Zend Framework中,如果你的函数名遵循某些路径约定,例如。 Path_To_Function :: function()当函数位于path / to / function(或者这种性质的东西)时,ZF会自动在该位置包含所需的文件

但这不是我做的....我所做的基本上是将我想要包含的所有地方放入php include_path然后只需要该文件然后调用该函数。

如下所示

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

其中Class.php位于include_path

中的目录中

但是这是多余的,因为我已经在静态函数调用Class::something()中指定了类名,而且几乎所有函数都是静态的......

有没有办法配置/破解zend,这样如果我进行静态调用:

SomeClass::dosomething(); 

它会根据该静态调用的类名自动执行require_once('SomeClass.php')吗?

1 个答案:

答案 0 :(得分:1)

将其放入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_"