1

自動読み込みはZendに組み込まれているので、クラスをインスタンス化しようとすると、クラス名を使用してクラスのファイルがどこにあるかを見つけようと思いました。

オートローダーを使用して、アプリケーションのルートディレクトリにDTOディレクトリをロードできるようにしたい。ファイル/application/dtos/myClass.phpに対してこのApplication_DTO_MyClassのようなことができると思いました

グーグルしてみましたが、何も役に立ちませんでした。これを行うための最良の方法に関するヒントはありますか?

4

1 に答える 1

1

Application / Modelsのサブディレクトリにモデルを作成するか、ライブラリのサブディレクトリとして独自の「名前空間」にモデルを作成するかに応じて、ここで利用できるオプションがいくつかあります。ZendFrameworkに推奨されるディレクトリ構造を使用していることを前提としています。

Application / Modelsのサブディレクトリにモデルを作成するには、最初にディレクトリを作成します。あなたの場合、Application / Models/Dtoが私の推奨です。

そのディレクトリに、以下を含むMyclass.phpを作成します。-

class Application_Model_Dto_Myclass
{
    public function __construct()
    {
        //class stuff
    }
}

このようにインスタンス化するもの:-

$myObject = new Application_Model_Dto_Myclass();

ライブラリのサブディレクトリとして独自の「名前空間」にクラスを作成する場合は、最初にディレクトリlibrary / Dtoを作成し、次にファイルMyclass.phpを作成します。これは次のようになります。-

class Dto_Myclass
{
    public function __construct()
    {
        //class stuff
    }
}

この「名前空間」を登録する必要があります。次の行を追加して、application.iniでこれを行うことをお勧めします。

autoloadernamespaces[] = "Dto_"

したがって、このクラスをインスタンス化します。-

$myObject = new Dto_Myclass();

なぜグーグルでこれを見つけられなかったのかはわかりませんが、ZendFrameworkプログラマーズリファレンスガイドでこれ以上のことを見つけることができます。また、ZFコードは、すべてがどのように機能するかを理解するための優れたリソースであることがわかりました。

于 2012-03-16T22:54:27.790 に答える