0

我正在使用 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。你能告诉我我哪里出错了吗?

4

2 回答 2

0

为了使它工作,你希望它如何引用Zend_Application_Resource_Frontcontroller

具体来说,您需要将一组'module' => 'controller'目录对传递给resources.frontController.controllerDirectory.

controllerDirectory:指定单个控制器目录的字符串值,或模块到控制器目录对的数组。

我怀疑这会解决所有问题,但它应该让你朝着正确的方向前进。

于 2012-12-22T13:40:08.507 回答
0

你试过把你的模块放在模块目录中吗?IE:

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

Wich 通常是 zf 期望找到其模块的地方。您可能需要调整 rapplication.ini 设置以反映这一点。

于 2012-12-17T21:20:24.843 回答