0

オートローダを使用して、Zend ディレクトリと同じディレクトリにあるクラス ファイル 'templater' を見つけるにはどうすればよいですか?

|_ include
      |_Zend
      |_Templater.php
      |_Smarty

|_root directory

Zend フォルダーと smarty フォルダーおよびその他のクラスは、ルート ディレクトリの外にある de include フォルダーに格納しました。

私は最終的に、その場所をinclude_pathに追加することで、Zendがそのクラスを見つける方法を見つけました。

今、smarty で使用される te​​mplaterclass に行き詰まっています。

オートローダーに templaterclass を認識させ、後で smartyfolder の smarty クラスを認識させるにはどうすればよいですか?

4

1 に答える 1

1

Zend Framework のオートローダは、クラスが保持されているか、どのように名前が付けられているかについて非常にうるさいです。

自動ロードするには、テンプレート クラスを保持するinclude/Templater/Templater.php必要があり、次のように名前を付ける必要があります。

class Templater_Templater
{
    //Class stuff
}

モデルまたはコントローラーで次のように呼び出します。

$templater = new Templater_Templater();

ただし、それが機能する前に、次の行を application.ini ファイルに追加する必要があります。

autoloadernamespaces[] = "Templater_"

テンプレートがダウンロードした外部クラスであり、命名要件に一致せず、その名前をオートローダーに合わせて変更できない場合は、必要な場所にファイルを含める必要がありますが、保持するのが最善です. includesのサブディレクトリにあります。または、 David Weinraubが指摘したように、このためのカスタム オートローダーを作成できます。

「includes」はZend Framework の推奨ディレクトリ構造ではないことを認識していると思います。

于 2012-03-20T13:42:31.010 に答える