2012-05-03 11 views
0

私はZend Frameworkにプロジェクトへのモジュラー構造を作成しようとしていますが、私は何をしようとしていますと、私は理解して傾けるここで追加するドキュメントを読んだ後、このZend frameworkモジュールコントローラのディレクトリ実装の指定?

docroot/ 
    index.php 
application/ 
    default/ 
     controllers/ 
      IndexController.php 
      FooController.php 
     models/ 
     views/ 
      scripts/ 
       index/ 
       foo/ 
      helpers/ 
      filters/ 
    blog/ 
     controllers/ 
      IndexController.php 
     models/ 
     views/ 
      scripts/ 
       index/ 
      helpers/ 
      filters/ 
    news/ 
     controllers/ 
      IndexController.php 
      ListController.php 
     models/ 
     views/ 
      scripts/ 
       index/ 
       list/ 
      helpers/ 
      filters/ 

のようになります。モジュールを作成しています次のコード、または私は/zendlibrary/Controller/front.phpをリファクタリングする必要がありますか?

$front->setControllerDirectory(array(
    'default' => '/path/to/application/controllers', 
    'blog' => '/path/to/application/blog/controllers' 
)); 

OR

$front->addControllerDirectory('/path/to/application/news/controllers', 
           'news'); 
+0

解決策は多少異なります。私たちはこれをしましたが、私はコードを掘り下げる時間がありません。その多くはコンフィギュレーションにあります。 –

+0

1つの質問ですが、アプリケーションコードをdocrootの下に置くことをお勧めします。docrootの上に置かないでください。 – RockyFord

答えて

0

ブートストラップにメソッドを追加するには、おそらく最も簡単な方法ですか?

それは、このように簡単です:

zf create module mymodule 

はAkrabatのポストBootstrapping modules in ZFの詳細をお読みください。

コマンドラインを使用して、コントローラ、アクション、モデル、フォームをモジュール内に簡単に作成できます。ツールはあなたのためにすべてを生成します。

0

まず、我々はこれをしなかったときに我々は、アプリケーション/モジュール/構成で代わりにアプリケーションの/

(アプリケーション/のconfigs/configuration.ini)モジュールを入れます次のようなものが必要です:

[bootstrap] 

Autoloadernamespaces[] = "Zend_" 
Autoloadernamespaces[] = "default_" 
Autoloadernamespaces[] = "blog_" 
Autoloadernamespaces[] = "news_" 


resources.frontController.moduleDirectory = APPLICATION_PATH "modules" 
resources.frontController.defaultModule = "default" 
resources.frontController.prefixDefaultModule = 1 
resources.frontController.throwErrors = true 

resources.modules[] = "default" 
resources.modules[] = "blog" 
resources.modules[] = "news" 
resources.layout.layout = "layout" 

resources.view.encoding = "UTF-8" 
resources.view.basePath = APPLICATION_PATH "modules/default/views/" 

これ以上のことがあるかもしれませんが、これが役立つかどうか教えてください。

protected function _initFrontController() 
{ 
    $front = Zend_Controller_Front::getInstance(); 
    $front->setControllerDirectory(array(
     'default' => APPLICATION_PATH.'/default/controllers', 
     'blog' => APPLICATION_PATH.'/blog/controllers' 
    )); 

    return $front; 
} 
+0

いいえ、私はadminのコントローラを求めているので、私はlocalhost/Admin/indexを置いたときにそれをやりたいのですが、ディレクトリを無視してエラーを出すだけではなく、コントローラの管理者はそこにいません –

関連する問題