搜索
系统检测到您的用户名不符合规范:

多层MVC,继承问题。

浏览:1330 发布日期:2013年08月30日 分类:求助交流 关键字: 多层MVC 继承
官方教程:http://www.thinkphp.cn/document/65.html


我现在有一个逻辑层logic

有3个类 CommonLogic、TgLogic、 ArticleLogic,

ArticleLogic继承TgLogic, Tglogic继承CommonLogic;

当我实例化ArticleLogic时候,就会报错 'TgLogic' not found

难道多层MVC不支持继承吗?class CommonLogic extends Model {
public $model = null;

public function __construct( $modelName ) {
$this -> model = D( $modelName );
echo 'CommonLogic' . "\n";
}
}
class TgLogic extends CommonLogic {
public function __construct( $modelName ) {
parent::__construct( $modelName );
echo 'TgLogic' . "\n";
}
}
class ArticleLogic extends TgLogic {

public function __construct() {
parent::__construct( 'Article' );
}
}
----------------------------我是分割线------------------------------

我的解决方法:
修改core目录下的核心文件Think.class.php/**
* 系统自动加载ThinkPHP类库
* 并且支持配置自动加载路径
* @param string $class 对象类名
* @return void
*/
public static function autoload($class) {
// 检查是否存在别名定义
if(alias_import($class)) return ;
$libPath = defined('BASE_LIB_PATH')?BASE_LIB_PATH:LIB_PATH;
$group = defined('GROUP_NAME') && C('APP_GROUP_MODE')==0 ?GROUP_NAME.'/':'';
$file = $class.'.class.php';
if(substr($class,-8)=='Behavior') { // 加载行为
if(require_array(array(
CORE_PATH.'Behavior/'.$file,
EXTEND_PATH.'Behavior/'.$file,
LIB_PATH.'Behavior/'.$file,
$libPath.'Behavior/'.$file),true)
|| (defined('MODE_NAME') && require_cache(MODE_PATH.ucwords(MODE_NAME).'/Behavior/'.$file))) {
return ;
}
}elseif(substr($class,-5)=='Model'){ // 加载模型
if(require_array(array(
LIB_PATH.'Model/'.$group.$file,
$libPath.'Model/'.$file,
EXTEND_PATH.'Model/'.$file),true)) {
return ;
}
}elseif(substr($class,-6)=='Action'){ // 加载控制器
if(require_array(array(
LIB_PATH.'Action/'.$group.$file,
$libPath.'Action/'.$file,
EXTEND_PATH.'Action/'.$file),true)) {
return ;
}
}elseif( substr($class,-5)=='Logic' ) { // 逻辑层
if(require_array(array(
LIB_PATH.'Logic/'.$group.$file,
$libPath.'Logic/'.$file,
EXTEND_PATH.'Logic/'.$file),true)) {
return ;
}
}
// 在这里添加自动加载的目录
// ......
// 其他代码
// ......
不知道有没有人有更好的解决方法?
最佳答案
评论() 相关
后面还有条评论,
评论支持使用[code][/code]标签添加代码
您需要登录后才可以评论 登录 | 立即注册
收藏
pangou
积分:2005 等级:LV3
热点推荐
(追記) (追記ここまで)
最新更新

我们

合作

网站

信息

ThinkPHP 是一个免费开源的,快速、简单的面向对象的 轻量级PHP开发框架 ,创立于2006年初,遵循Apache2开源协议发布,是为了敏捷WEB应用开发和简化企业应用开发而诞生的。ThinkPHP从诞生以来一直秉承简洁实用的设计原则,在保持出色的性能和至简的代码的同时,也注重易用性。并且拥有众多的原创功能和特性,在社区团队的积极参与下,在易用性、扩展性和性能方面不断优化和改进,已经成长为国内最领先和最具影响力的WEB应用开发框架,众多的典型案例确保可以稳定用于商业以及门户级的开发。

AltStyle によって変換されたページ (->オリジナル) /