2012-03-13 12 views
0

私はZend Frameworkの自動読み込み機能を理解しようとしています。Zendフレームワークの自動読み込みの問題

質問:

1は - 私はX/Foo.phpという名前のクラスを含むというフォルダをフォルダ/私のアプリケーションに追加したいと言います。コントローラーから新しいFoo()を実行すると、自動的にロードされます。クラスFooの名前はどうすればいいですか? 「Foo」は問題ありませんか、「Application_X_Foo」という名前を使用すべきですか?

2 - この記事は$ autoloader-> registerNamespace( 'My_')でどうなっていますか?名前空間My_のどこのクラスをどこに置くべきですか?

おかげで、追加したい場合は、クラス名としてApplication_Model_Fooを使用する必要があり、それが

2.-「アプリケーション/モデル/ Foo.php」の下に位置しているアプリケーションの特定のクラスについて

答えて

1

1.-他の名前空間/ライブラリをプロジェクトに追加すると、ライブラリ/フォルダの下に追加できます。 "My_"名前空間の場合は、 "library/My"フォルダに追加する必要があります。私は、Zend Frameworkのクイックスタートガイドへの外観を持っているあなたをお勧めでしょうところで

|-- application 
| |-- Bootstrap.php 
| |-- configs 
| | `-- application.ini 
| |-- controllers 
| | |-- ErrorController.php 
| | `-- IndexController.php 
| |-- models 
| `-- views 
|  |-- helpers 
|  `-- scripts 
|   |-- error 
|   | `-- error.phtml 
|   `-- index 
|    `-- index.phtml 
|-- library 
|-- public 
| |-- .htaccess 
| `-- index.php 
`-- tests 
    |-- application 
    | `-- bootstrap.php 
    |-- library 
    | `-- bootstrap.php 
    `-- phpunit.xml 

:ここ

、あなたは基本的なZend Frameworkのプロジェクトのディレクトリ構造に見ることができ http://framework.zend.com/manual/en/learning.quickstart.html

+0

1 - okしかし、そういう意味では、モデル/フォルダが潜在的に異なるドメインに属する可能性があります。アプリケーション/モデル/ mypackage/Foo.phpのようなサブパッケージを持つことは可能ですか? 2 - この2番目のシナリオに関してはすべてクリアです – nourdine

+0

正しい構文に従う限り、必要なすべてのサブディレクトリを持つことができます。指定したものが正しくない場合、その代わりにmodels/MyPackage/Foo.phpを使用する必要があります。クラスはApplication_Model_MyPackage_Fooと呼ばれます。または、これが必要な場合はモジュラー構造を使用することができます:http://framework.zend.com/manual/en/zend.controller.modular.html – arraintxo

+0

ooh yes u r right!だから、基本的に私はモデルの中で欲しい深みに行き、私が望むすべてのサブパッケージを作り、それから私が定義しているクラスの名前でその構造を反映させることができます。たとえば、クラスA/B/C/D/Foo.phpのクラスはApplication_Model_A_B_C_D_Fooです。ニース!私はちょっと掘り下げて、それはこれに依存するように見えるhttp://framework.zend.com/manual/en/zend.loader.autoloader-resource.html#zend.loader.autoloader-resource.module – nourdine

関連する問題