2012-05-03 43 views
0

我想創建一個模塊化結構,Zend框架的項目,我所要做的是創建一個模塊,這將是這個樣子Zend框架指定模塊控制器目錄的實現?

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

解決方案有所不同。我們已經完成了這項工作,但我沒有時間去完成代碼。它的大部分駐留在配置中。 – 2012-05-03 19:22:36

+0

有一個問題,將您的應用程序代碼放在您的文檔根目錄下是否明智?是否應該將它放在您的文檔根目錄之上? – RockyFord

回答

0

添加一個方法到你的引導可能是最簡單的方法:

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

    return $front; 
} 
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/" 

可能還有更多,如果這有幫助,請告訴我。

+0

不,它會仍然命中模塊默認情況下,當我問管理員的控制器,所以當我把本地主機/管理員/索引時,我想要做它會去那個目錄不只是忽略目錄,並給出一個錯誤控制器管理員不在那裏 –

0

你試過Zend Tool

這很容易,因爲這:

zf create module mymodule 

瞭解更多關於Akrabat的帖子Bootstrapping modules in ZF

您可以使用命令行輕鬆地在模塊內創建控制器,動作,模型和表單。該工具將爲您生成一切。