所以我知道在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')
吗?
答案 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_"