簡體   English   中英

zend框架中的模塊配置

[英]module configuration in zend framework

我正在Zend Framework中使用多模塊CMS。 我想創建一個這樣的結構:

testsite/
index.php
library/
    zend/
    test/
application/
    configs/
        application.ini
    modules/
        users/
            controllers/
            models/
        ....
    frontend/
        controllers/
        models/
        ....
    backend/
        controllers/
        models/
        ...
    bootstrap.php

我創建了以下代碼:

//in application.ini
resources.frontController.defaultModule = "frontend"
resources.frontController.defaultControllerName = "index"
resources.frontController.defaultAction = "index"
resources.frontController.plugins.init = "Test_Controller_Plugin_Initializer"

//in bootstrap.php
 protected function _initControllers()
{
    $this->bootstrap('frontController');
    $this->_front = $this->getResource('frontController');

    $this->_front->addControllerDirectory(APPLICATION_PATH . '/backend/controllers', 'backend');
    $this->_front->addControllerDirectory(APPLICATION_PATH . '/frontend/controllers', 'frontend');
}

 //in Test/controllers/plugin/initializer.php
 public function preDispatch(Zend_Controller_Request_Abstract $request)
{          
    $front = Zend_Controller_Front::getInstance();
    $request = $front->getRequest();

    $request->setModuleName('frontend');
    $request->setControllerName('index');
    $request->setActionName('index');
}

當我轉到基本URL .../testsite時,它不起作用。 您能告訴我哪里出了問題嗎?

您是否嘗試過將模塊放在modules目錄中? 即:

testsite/
index.php
library/
    zend/
    test/
application/
    configs/
        application.ini
    modules/
        users/
            controllers/
            models/
        ....
        frontend/
            controllers/
            models/
            ....
        backend/
            controllers/
            models/
            ...
    bootstrap.php

Wif通常是zf期望找到其模塊的位置。 您可能必須調整rapplication.ini設置才能反映出來。

要使它起作用,您希望它如何引用Zend_Application_Resource_Frontcontroller

具體來說,您需要將'module'=>'controller'目錄對的數組傳遞給resources.frontController.controllerDirectory

controllerDirectory:指定單個控制器目錄的字符串值,或模塊到控制器目錄對的數組。

我懷疑這是否可以解決所有問題,但應該朝正確的方向前進。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM