如何使用自动加载器查找与Zend目录位于同一目录中的类文件“templater”?
|_ include
|_Zend
|_Templater.php
|_Smarty
|_root directory
我已将Zend文件夹和smarty文件夹以及其他类存储在根目录外的de include文件夹中。
我终于弄清楚Zend如何通过将它的位置添加到include_path来找到它的类。
现在我陷入了smarty将使用的模板类中。
如何让自动加载器知道templaterclass以及稍后smarty文件夹中的smarty类?
答案 0 :(得分:1)
Zend Framework自动加载器对于保存类以及如何命名它们非常挑剔。
为了自动加载,templater类需要保存在include/Templater/Templater.php
中,并且需要这样命名: -
class Templater_Templater
{
//Class stuff
}
您可以在模型或控制器中调用它,如下所示: -
$templater = new Templater_Templater();
在此之前,您需要将以下行添加到application.ini文件中: -
autoloadernamespaces[] = "Templater_"
如果templater是您下载的外部类,它与命名要求不匹配,并且您无法更改其名称以适应自动加载程序,那么您需要在必要时包含该文件,尽管它仍然是最佳的将它保存在包含的子目录中。或者,正如David Weinraub所指出的,您可以create a custom autoloader为此。
我假设您知道“包含”不是recommended directory structure for Zend Framework。