我搜索了很多关于如何在 Zend Framework 中自动加载类的文章。他们中的大多数人使用我认为很复杂的Zend_Loader_Autoloader_Resource
or 。Zend_Application_Module_Autoloader
我找到一个线程说一个使用自动加载的简单方法,只需要编辑 index.php 并添加一个新的资源方法。
例如,我希望模型类可以自动加载。我编辑代码如下:
// Ensure library/ is on include_path
set_include_path(implode(PATH_SEPARATOR, array(
realpath(APPLICATION_PATH . '/../library'),
get_include_path(),***realpath(APPLICATION_PATH . '/models')***
)));
而Bootstrap.php中的资源方法:
protected function _initAutoload()
{
$autoloader = Zend_Loader_Autoloader::getInstance();
$autoloader->setFallbackAutoloader(true);
}
就这样。
因此,如果我有一个名为 mymodel 的模型,它将自动加载。如果模型在 myfolder/mymodel 之类的文件夹中,则需要将类名更改为 myfolder_mymodel。
所以我觉得这种风格很简单。但我的问题是,为什么很少有人像这样自动加载?
这种方式有什么缺点吗?