0

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

|_ include
      |_Zend
      |_Templater.php
      |_Smarty

|_root directory

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

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

现在我被 smarty 使用的 templaterclass 卡住了。

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

4

1 回答 1

1

Zend Framework 自动加载器对类是否保留以及如何命名非常挑剔。

为了自动加载,需要保留模板类,include/Templater/Templater.php并且需要像这样命名:-

class Templater_Templater
{
    //Class stuff
}

您可以像这样在模型或控制器中调用它:-

$templater = new Templater_Templater();

但是,在此之前,您需要将以下行添加到您的 application.ini 文件中:-

autoloadernamespaces[] = "Templater_"

如果 templater 是您下载的与命名要求不匹配的外部类,并且您无法更改其名称以适应自动加载器,那么您将需要在需要的地方包含该文件,尽管最好保留它在包含的子目录中。或者,正如David Weinraub所指出的,您可以为此创建一个自定义自动加载器

我假设您知道Zend Framework 不推荐使用 'includes' 目录结构

于 2012-03-20T13:42:31.010 回答