2012-01-17 20 views
1

用オートローダを設定するにはどのように私は私のアプリケーションは、Windows上でうまく機能ウィンドウでZend Frameworkの - カスタムデコレーター

アプリケーション/モジュール/タブ/フォーム/デコレータ

を私のカスタムデコレーターを配置しています、しかしLinuxのzendは私のコードをZend/Forms/Decoratorsに見つけることができません。(大文字のFとD)

私のデコレータを自動ロードするためにオートローダーを設定するにはどうすればよいですか? (マイカスタムデコレータの名前はTab_Forms_Decorators_Hrです)

+0

'Zend/Form/Decorator'(単数形' Form')ですか?しかし、なぜWindowsで複数形が動作するのか分かりません...カスタムリソースオートローダーを定義しているのであれば、何でも可能です。 –

+0

@DavidWeinraubすみませんが、これに対してカスタムリソースオートローダーをどのように定義できますか? – hungneox

+0

申し訳ありませんが、あなたを混乱させるわけではありません。あなたは必ずしもそうではないと(必ず)言っています。カスタムリソースオートローダーがあれば、私の提案(クラス名のための単なる 'Form')は当てはまらないかもしれません。あなたがそうでないように聞こえるので、@Ondrejの答えは正しい軌道にあるようです。 –

答えて

3

デフォルトのパスセグメントがあるので、フォーム/デコとクラスのプレフィックスセグメントであるForm_Decorator、複数形が奇妙で、単数1がすべき(Zendの/ Form.phpソース、getPluginLoader()方法を参照してください)使用される。 Formsディレクトリは、独自のFormsモデルを格納するために使用される可能性があります。あなたはエラー全体を投稿していません...

しかし、これはあなたの問題を解決しません。このように、独自のパスとプレフィックスを追加するaddPrefixPath()を使用してみてください(これに応じて、ディレクトリとクラス名を調整):

$form->addPrefixPath('Tab_Form_Decorator', 'Tab/Form/Decorator', 'decorator'); 

注意パスは、例えば中(事前に定義されたいくつかの場所で開始する必要があります_initAutoload()ブートストラップを。 .php)。