关于zendframework的种自动加载
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了关于zendframework的种自动加载,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2267字,纯文字阅读大概需要4分钟。
内容图文
![关于zendframework的种自动加载](/upload/InfoBanner/zyjiaocheng/219/dc81275852f245489c1326dd43b770a3.jpg)
目录结构
zf-demo
application
controller
IndexController.php
models
User.php
services
views
Bootstrap.php
其中user.php的类名是Model_User,在IndexController.php中有这么一句调用$user = new Model_User();
执行时会报错
Fatal error: Class 'Model_User' not found in D:\lamp\sites\zf-demo\application\controllers\IndexController.php on line 132
上网搜索后得到答案
在Bootstarp.php中加入_initAutoload方法
Bootstrap.php代码
<?php
class Bootstrap extends Zend_Application_Bootstrap_Bootstrap {
protected function _initAutoload() {
$moduleLoader = new Zend_Application_Module_Autoloader(array(
'namespace' => '',
'basePath' => APPLICATION_PATH));
/** auto load */
$autoloader = Zend_Loader_Autoloader::getInstance();
$autoloader->setFallbackAutoloader(true);
return $moduleLoader;
}
}
再次执行,就能成功加载user类了.
问题:
按我的理解,zend的自动加载机制,是把类名中的下划线替换成路径分隔符,然后根据include_path的顺序去加载类
如果是这样的话,Model_User会转换成Model/User.php来进行加载,但是目录中没有model这个文件夹,只有models,为什么也能加载成功?,_initAutoload到底做了什么?谁能解释一下?
------解决方案--------------------
可以!这是一种默认吧! 至少quick start的例子孓是这样的。 命令行 create model user 自动创建就是样的。 用的models文件夹。
------解决方案--------------------
通常这种不规则的命名空间是用Zend_Loader_Autoloader_Resource的。为了方便,框架应用本身的结构继承实现了Zend_Application_Module_Autoloader,简化了操作,看源代码就知道了
以下类的源代码
/**
* Resource loader for application module classes
*
* @uses Zend_Loader_Autoloader_Resource
* @category Zend
* @package Zend_Application
* @subpackage Module
* @copyright Copyright (c) 2005-2011 Zend Technologies USA Inc. (http://www.zend.com)
* @license http://framework.zend.com/license/new-bsd New BSD License
*/
class Zend_Application_Module_Autoloader extends Zend_Loader_Autoloader_Resource
{
/**
* Constructor
*
* @param array
------解决方案--------------------
Zend_Config $options
* @return void
*/
public function __construct($options)
内容总结
以上是互联网集市为您收集整理的关于zendframework的种自动加载全部内容,希望文章能够帮你解决关于zendframework的种自动加载所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。