2013-06-26 117 views
0

嗨,大家好,我正在嘗試使用zend框架創建一個休息服務 我已經基本上覆制了這個休息服務將用於的實際應用程序。 我刪除了佈局文件夾和視圖文件夾。PHP zend框架不會加載模塊

我的問題是模塊似乎並沒有在所有被加載,我得到下面的輸出,當我去到的index.php

problemInvalid controller specified (error)#0 /home/********/*****/library/Zend/Controller/Front.php(954): Zend_Controller_Dispatcher_Standard->dispatch(Object(Zend_Controller_Request_Http), Object(Zend_Controller_Response_Http)) #1 /home/********/*****/library/Zend/Application/Bootstrap/Bootstrap.php(97): Zend_Controller_Front->dispatch() #2 /home/********/*****/library/Zend/Application.php(366): Zend_Application_Bootstrap_Bootstrap->run() #3 /home/********/public_html/portal/websvc/index.php(34): Zend_Application->run() #4 {main} 

我不知道爲什麼這個心不是工作。其基本上與我的原始應用程序具有相同的設置,有20個模塊,並沒有問題。

請幫助! :'(

,所以我basicly有以下文件夾結構

/app/modules 
/app/modules/v1 
/app/modules/v1/controllers 
/app/modules/v1/controllers/OutboundController.php 
/app/modules/v1/controllers/ProductController.php 
/app/modules/v1/Bootstrap.php 
/app/modules/default 
/app/modules/default/controllers 
/app/modules/default/controllers/errorController.php 
/app/config/ 

這是我的application.ini

[production] 
includePaths.library = APPLICATION_PATH "/../../../library" 
bootstrap.path = APPLICATION_PATH "/Bootstrap.php" 
bootstrap.class = "Bootstrap" 
appnamespace = "Application" 
resources.frontController.defaultModule = "v1" 
resources.frontController.moduleDirectory = APPLICATION_PATH "/modules" 
resources.frontController.moduleControllerDirectoryName = "controllers" 

resources.router.routes.rest.type = Zend_Rest_Route 

我的bootstrap.php

class Bootstrap extends Zend_Application_Bootstrap_Bootstrap { 

protected function _initautoloader() { 
    $autoloader = new Zend_Application_Module_Autoloader(array(
     'basePath' => APPLICATION_PATH."/modules/default", 
     'namespace' => '', 
    )); 

    $resourceAutoLoader = new Zend_Loader_Autoloader_Resource(array(
     'basePath' => APPLICATION_PATH, 
     'namespace' => '', 
    )); 
    $resourceAutoLoader->addResourceTypes(array(
      "class" => array(
          'namespace' => 'Class', 
          'path'  => '/../../../library/Class' 
         ), 
      "model" => array(
          'namespace' => 'Model', 
          'path' => '/../../../library/Models' 
         ) 
    )); 
} 




protected function _initFrontModules() 
{ 
    $this->bootstrap('frontController'); 
    $front = $this->getResource('frontController'); 
    $front->addModuleDirectory(APPLICATION_PATH . '/modules'); 
} 

}

我的index.php

// Define path to application directory 
defined('APPLICATION_PATH') 
    || define('APPLICATION_PATH', realpath(dirname(__FILE__) . '/../../../ibwms/applications/external/websvc')); 

// Define application environment 
defined('APPLICATION_ENV') 
    || define('APPLICATION_ENV', (getenv('APPLICATION_ENV') ? getenv('APPLICATION_ENV') : 'development')); 


// Ensure library/ is on include_path 
set_include_path(implode(PATH_SEPARATOR, array(
    realpath(APPLICATION_PATH . '/../../../library'), 
    get_include_path(), 
))); 

/* Zend_Application */ 
require_once 'Zend/Application.php'; 
// Create application, bootstrap, and run 
try{ 


$application = new Zend_Application(
    APPLICATION_ENV, 
    APPLICATION_PATH . '/configs/application.ini' 
); 

Zend_Controller_Front::getInstance()->setBaseUrl('/portal/websvc/'); 

$application->bootstrap() 
      ->run(); 

}catch(Exception $e) 
{ 
    echo 'problem'.$e->getMessage(); 
} 
+0

ErrorController距離默認模塊,對吧?你的「默認」模塊有Bootstrap文件嗎?併爲你的「v1」模塊?兩者都應該有自己的引導程序。 –

+0

對不起,他們都有bootstraps – user966936

回答

1

重命名

/app/modules/default/controllers/errorController.php 

/app/modules/default/controllers/ErrorController.php 

最有可能有一個例外,應用程序試圖以顯示它,但無法加載ErrorController