ZF自动加载工作在localhost上,但在Linux服务器上工作

时间:2013-04-06 18:42:26

标签: zend-framework

我正在为学校建立一个CMS。我的申请结构如下

- SITE
-- application
---- configs
---- layouts
---- modules
-------- default
------------ controllers
------------ forms
------------ models
------------ plugins
------------ views
------------ Bootstrap.php
-------- admin
------------ controllers
------------ forms
------------ models
------------ views
------------ Bootstrap.php
---- Bootstrap.php
-- public
-- library
-- index.php

我的代码在我的localhost zend服务器上工作得很好但是上传后显示这个错误

  

致命错误:找不到类'Default_Model_Students'   /home/ernagro/application/modules/default/controllers/IndexController.php   在第23行

这是我的主要引导代码:

class Bootstrap extends Zend_Application_Bootstrap_Bootstrap
{
    private $_acl=null;
    private $_auth=null;

    protected function _initAutoload(){
        $modelLoader=new Zend_Application_Module_Autoloader(array('namespace'=>'','basePath'=>APPLICATION_PATH.'/modules/default'));
        require_once APPLICATION_PATH.'/modules/default/models/Acl.php';
        require_once APPLICATION_PATH.'/modules/default/plugins/AccessCheck.php';
        $this->_acl = new Default_Model_Acl();
        $this->_auth= Zend_Auth::getInstance();
        $fc = Zend_Controller_Front::getInstance();
        if (Zend_Auth::getInstance()->hasIdentity())
        {
            $identity= zend_auth::getInstance()->getStorage()->read();
            Zend_Registry::set('role', $identity[role]);
        }
        else
        {
            Zend_Registry::set('role', 'guests');
        }
        $fc->registerPlugin(new Default_Plugin_AccessCheck($this->_acl,$this->_auth));
        return $modelLoader;    
    }
    function _initViewHelpers()
    {
        $this->bootstrap( 'layout');
        $layout = $this->getResource('layout');
        $view = $layout->getView();
        $view->setHelperPath(APPLICATION_PATH.'/helpers','');
        $view->doctype('XHTML1_TRANSITIONAL');
        $view->headMeta()->appendHttpEquiv('Content-type','text/html;charset=utf-8')
                        ->appendName('description','سیستم مدیریت محتوای مدارس تکفام')
                        ->appendName('keywords','مدیریت محتوای مدارس, مدیریت محتوا, دبیرستان ها, مدارس, سیستم جامع مدارس, مدیریت مدارس, محتوا, مدیریت, سیستم, تکفام, ارنا, تیم ارنا, ernagourp, Erna, Takfam, group')
                        ->appendName('Language','Persian, FA')                  
                        ->appendName('generator','Erna Group TM(http://www.ernagroup.com')                  
        ;
        //Zend_Dojo::enableView($view);
        ZendX_JQuery::enableView($view);
        $view->headTitle('سیستم مدیریت محتوای مدارس تکفام')->setSeparator(' | ');
        $navContainerConfig=new Zend_Config_Xml(APPLICATION_PATH."/configs/navigation.xml","nav");
        $navContainer = new Zend_Navigation($navContainerConfig);
        $view->navigation($navContainer)->setAcl($this->_acl)->setRole(Zend_Registry::get(role));
    }

}

这是我的默认模块引导程序:

 class Default_Bootstrap extends Zend_Application_Module_Bootstrap{
    protected function _initAutoload(){
    $modelLoader=new Zend_Application_Module_Autoloader(array(
            'namespace'=>'Default','basePath'=>APPLICATION_PATH.'/modules/default')
    );
    return $modelLoader;
    }
 }

1 个答案:

答案 0 :(得分:1)

它与文件夹名称的大小写有关。您的本地主机最有可能位于Linux计算机和Linux上的生产服务器上。尝试将文件夹default重命名为Default。 Windows没有区别,Linux确实如此。