使用zend自动加载器加载其他类

时间:2012-03-20 13:09:17

标签: php zend-framework autoloader

如何使用自动加载器查找与Zend目录位于同一目录中的类文件“templater”?

|_ include
      |_Zend
      |_Templater.php
      |_Smarty

|_root directory

我已将Zend文件夹和smarty文件夹以及其他类存储在根目录外的de include文件夹中。

我终于弄清楚Zend如何通过将它的位置添加到include_path来找到它的类。

现在我陷入了smarty将使用的模板类中。

如何让自动加载器知道templaterclass以及稍后smarty文件夹中的smarty类?

1 个答案:

答案 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