Php 关于rest和模块的Zend框架问题

Php 关于rest和模块的Zend框架问题,php,zend-framework,zend-autoloader,zend-rest-route,Php,Zend Framework,Zend Autoloader,Zend Rest Route,伙计们,我的项目有以下结构 application/ Bootstrap.php configs/ application.ini modules/ default/ controllers/ models/ views/ Bootstrap.php main/ controllers/ UserController.php

伙计们,我的项目有以下结构

application/
   Bootstrap.php
   configs/
      application.ini
   modules/
      default/
         controllers/
         models/
         views/
         Bootstrap.php
      main/
         controllers/
            UserController.php
         forms/
         models/
            resources/
            validate/
         views/
            scripts/
               user/
                  complete-registration.phtml
                  index.phtml
                  register.phtml   
         Bootstrap.php
      rest/
         controllers/
            LoginController.php
         models/
         views/
         Bootstrap.php
现在来谈谈问题。我在UserController.php中定义了一些似乎无法访问的操作。例如,如果我转到localhost/main/user/register,我将无法访问此项。但是,我浏览到localhost/main/user,它可以工作

我不知道它可能是什么,但我的猜测是它与我的Bootstrap.php有关调试时,我在main bootstrap.php中对rest路由初始化进行了注释,它似乎正常工作。我已经给出了我认为受此影响的所有文件。如果我能知道会是什么,那就太棒了。已经花了几天的时间试图弄明白这一点

Bootstrap.php
也许下一个解决方案:
1) 您的
注册表操作是否存在?

2) 此操作的
视图是否存在<代码>/views/scripts/user/register.phtml

通过执行以下操作使其工作。希望这将是有用的人

在前端控制器插件中创建路由

class SB_Controller_Plugin_Initialize extends Zend_Controller_Plugin_Abstract
{

    public function routeStartup(Zend_Controller_Request_Abstract $request)
    {
        $frontController = Zend_Controller_Front::getInstance();
        $restRoute = new Zend_Rest_Route($frontController, array(), array('rest'));
        $router = $frontController->getRouter();
        $router->addRoute('rest', $restRoute);
    }
}
在application.ini中

resources.frontController.plugins.Initialize = "SB_Controller_Plugin_Initialize"

将此添加到主引导中

protected function _initRoutes()
    {
        $front = Zend_Controller_Front::getInstance();
        $router=$front->getRouter();
        $restRoute=new Zend_Rest_Route($front,array(),array('yourrestmodule'));
        $router->addRoute('yourrestmodule',$restRoute);
    }

请提供有关此部分的更多信息:“如果我转到localhost/main/user/register,我将无法访问此内容。”-如果尝试访问,会发生什么情况?你能给出控制器动作代码吗?有错误信息吗?是的,我已经给出了上面的控制器代码。除了调用一个表单并在表单提交后显示完整的注册信息之外,没有什么别的。关于“如果我转到localhost/main/user/register,我就无法访问它。”我收到的页面未找到错误。我无法浏览到任何控制器中的任何操作。我相信这与休息路线有关。是的,所有这些东西都存在。就像我说的,如果我在引导中对rest路径进行注释,它会工作!
[production]
autoloadernamespaces[] = "Zend_"
autoloadernamespaces[] = "SB_"

phpSettings.display_startup_errors = 1
phpSettings.display_errors = 1

includePaths.library = APPLICATION_PATH "/../library"
bootstrap.path = APPLICATION_PATH "/Bootstrap.php"
bootstrap.class = "Bootstrap"
appnamespace = "Application"

; front controller
resources.frontcontroller.moduledirectory = APPLICATION_PATH "/modules"

; modules
resources.modules[] =

resources.frontController.params.displayExceptions = 1

resources.db.adapter = "PDO_MYSQL"
resources.db.isdefaulttableadapter = true
resources.db.params.dbname = "****"
resources.db.params.username = "*****"
resources.db.params.password = "*******"
resources.db.params.host = "*******"
resources.db.params.charset = "UTF8"

[staging : production]

[testing : production]
phpSettings.display_startup_errors = 1
phpSettings.display_errors = 1

[development : production]
phpSettings.display_startup_errors = 1
phpSettings.display_errors = 1
resources.frontController.params.displayExceptions = 1
class SB_Controller_Plugin_Initialize extends Zend_Controller_Plugin_Abstract
{

    public function routeStartup(Zend_Controller_Request_Abstract $request)
    {
        $frontController = Zend_Controller_Front::getInstance();
        $restRoute = new Zend_Rest_Route($frontController, array(), array('rest'));
        $router = $frontController->getRouter();
        $router->addRoute('rest', $restRoute);
    }
}
resources.frontController.plugins.Initialize = "SB_Controller_Plugin_Initialize"
protected function _initRoutes()
    {
        $front = Zend_Controller_Front::getInstance();
        $router=$front->getRouter();
        $restRoute=new Zend_Rest_Route($front,array(),array('yourrestmodule'));
        $router->addRoute('yourrestmodule',$restRoute);
    }