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

モジュールを modules ディレクトリに入れてみましたか? すなわち:

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

これは通常、zf がそのモジュールを見つけることを期待する場所です。これを反映するには、rapplication.ini 設定を調整する必要がある場合があります。

于 2012-12-17T21:20:24.843 に答える