【问题标题】:How to enable my modules in Zend Framework?如何在 Zend Framework 中启用我的模块?
【发布时间】:2010-11-04 13:57:33
【问题描述】:

我在 Zend 项目中创建了一个模块(人)。然后在该模块中创建了一个控制器(PersonController.php)。然后在该控制器中创建了一个动作(addAction)。但是当我使用http://myproject.dev/person/person/add 时,它什么也没有显示。

http://myproject.dev/ 指向我的zendproject 的公共文件夹,因此当我使用http://myproject.dev/ 时,它成功显示了我的索引页面。但它不适用于我的模块。

我在某处看到我们必须配置 application.iniBootstrap.php 来告诉 zend 我们的模块目录,但我不知道如何。这些陈述是什么??

我的当前目录是这样的:

zendproject|
           |-> application 
                          |-> models
                          |-> modules
                                     |-> person
                                               |->controllers
                                                              |-> PersonController.php 

【问题讨论】:

  • 您是否使用 Zend_Tool 创建模块?
  • 是的,我使用 Zend_Tool 创建模块、控制器甚至动作。
  • 您的服务器配置是什么,例如 LAMP/WAMP/Windows+IIS?
  • @Ozair:我正在使用 Wamp。

标签: php zend-framework module


【解决方案1】:

尝试做接下来的事情:
1) 应用程序.ini

resources.frontController.moduleDirectory = APPLICATION_PATH "/modules"
resources.modules[] = ""

2)在每个模块中创建Bootstrap:

class Person_Bootstrap extends Zend_Application_Module_Bootstrap {
}

【讨论】:

  • 我的问题是错字。我的模块文件夹在 zend 的应用程序文件夹中。
【解决方案2】:

我认为您可以在 application.ini 上简单地添加模块配置

resources.modules[] =

就是这样。

【讨论】:

    【解决方案3】:

    在您的 Bootstrap 中执行此操作的代码方式如下:

    $frontController = Zend_Controller_Front::getInstance();
    $frontController->throwExceptions(true);
    $frontController->returnResponse(true);
    $frontController->setControllerDirectory(
                array(
                    'default' => '/path/to/application/controllers',
                    'person' => 'path/to/application/person/controllers'
                )
            );
    $response = $frontController->dispatch();
    $response->sendResponse();
    

    参见http://framework.zend.com/manual/en/zend.controller.front.html(特别是寻找副标题“setControllerDirectory() 和 addControllerDirectory”)

    【讨论】:

      【解决方案4】:

      我不知道为什么,但我只需要添加下面的行才能让它正常工作:

      resources.frontController.moduleDirectory = APPLICATION_PATH "/modules"
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-01-27
        相关资源
        最近更新 更多