当前位置:  开发笔记 > 编程语言 > 正文

Zend框架:自动加载类库

如何解决《Zend框架:自动加载类库》经验,为你挑选了1个好方法。

我在这里定义了一个类库.../projectname/library/Me/Myclass.php定义如下:


我有以下引导程序:

 'Default',
            'basePath'  => dirname(__FILE__),
        ));
        $autoloader->registerNamespace('Me_');
        return $autoloader;
    }

    /**
     * Bootstrap the view doctype
     * 
     * @return void
     */
    protected function _initDoctype()
    {
        $this->bootstrap('view');
        $view = $this->getResource('view');
        $view->doctype('XHTML1_STRICT');
    }

    /**
     * Bootstrap registry and store configuration information
     * 
     * @return void
     */
    protected function _initRegistry()
    {
      $config = new Zend_Config_Ini(APPLICATION_PATH . 
                                      '/configs/application.ini', APPLICATION_ENV,
                                      array('allowModifications'=>true));
      Zend_Registry::set('configuration', $config);
    }

}

在我的控制器中,我尝试像这样实例化类:


当我直接导航到http:/something.com/projectname/some?id = 1时,我收到以下错误:

致命错误:在第x行的/home/myuser/work/projectname/application/controllers/SomeController.php中找不到类'Me_Myclass'

有任何想法吗?

潜在的相关杂记:

当我使用我在应用程序/库下的其他文件夹中定义的类扩展模型时,自动加载器似乎有效.

有人建议更改我尝试的"默认",但它似乎没有解决问题,并且使用此命名空间破坏了模型功能的额外负面影响.



1> smack0007..:

你的类需要名为Me_Myclass:

class Me_Myclass
{
}

将库文件夹向上移动一级,以便具有文件夹结构:

/
    /application
    /library
    /public

然后在你的Bootstrap中将以下内容添加到_initAutoload():

    Zend_Loader_Autoloader::getInstance()->registerNamespace('Me_');

推荐阅读
夏晶阳--艺术
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有