if(empty($name)) return new Think\Model;修改为$parent = class_exists('\\Common\\Model') ? '\\Common\\Model' : '\\Think\\Model';
if(empty($name)) return new $parent;找到$model = class_exists($class)? new $class($name) : new Think\Model($name);修改为$model = class_exists($class)? new $class($name) : new $parent($name);找到$model = new Think\Model(basename($name));修改为$model = new $parent(basename($name));还是这个PHP文件,找到function M函数$class = 'Think\\Model';修改为$class = class_exists('Common\\Model') ? 'Common\\Model' : 'Think\\Model';实现原理则是通过继承Common\Model来实现单文件通用型Model。<?php
namespace Common;
class Model extends \Think\Model{
public function test(){//测试方法
echo('Common\Model test');
}
}上面不使用use Think\Model的原因是避免当前Common\Model类声明重复的冲突,也为了让继承类更好的书写几乎和原生无异的Model。优点可以看下面代码。<?php
namespace Home\Model;
use Common\Model;
class XxxModel extends Model{
public function test(){//测试方法
parent::test();//调用Common\Model::test()方法
echo('Home\Model test');
}
}对于单文件通用Controller的实现,由于相对较复杂,稳定性本人也在测试中。ThinkPHP 是一个免费开源的,快速、简单的面向对象的 轻量级PHP开发框架 ,创立于2006年初,遵循Apache2开源协议发布,是为了敏捷WEB应用开发和简化企业应用开发而诞生的。ThinkPHP从诞生以来一直秉承简洁实用的设计原则,在保持出色的性能和至简的代码的同时,也注重易用性。并且拥有众多的原创功能和特性,在社区团队的积极参与下,在易用性、扩展性和性能方面不断优化和改进,已经成长为国内最领先和最具影响力的WEB应用开发框架,众多的典型案例确保可以稳定用于商业以及门户级的开发。