cmstop核心

控制器在什么时候实例化?  ---每发送一次请求,都要从入口文件开始一步步往下走

index.php入口文件-->到第二个文件(核心文件cmstop.php)中实例化controller类
核心文件中.定义属性.接收$_GET过来的controller和方法action,最后实例化的$this就是包含有这些属性
的类
public $app, $controller, $action, $args,

$obj = new $this->class($this);

工厂类.调用路由方法.实例化路由->路由调用执行方法.接收所有$_GET过来的参数(包含controller和方法)
路由类处理好controller和方法.都交给cmstop核心类处理.最后实例化
$obj = new $this->class($this);
过去$this对象-->直接传递到当前类的构造方法中-->抽象父类的构造方法中--全部用引用传递
参数调用自己app属性$app->app就是要实例化的view模板.
function __construct(& $app)
{

parent::__construct();

if ($app->client === 'admin')
{
$this->view = & factory::view($app->app);
}

}

model和view 都是在构造方法中实例化

model类实例化.在子类控制器的( 构造方法 )中controller_admin_video
表名称,model对象名称 全部和类名一样
$this->video = loader::model('admin/video');


view实例化.在父类控制器抽象类中的( 构造方法 )中controller_abstract.


function __construct(& $app)
{

parent::__construct();

if ($app->client === 'admin')
{
$this->view = & factory::view($app->app);
}

}

原文地址:https://www.cnblogs.com/bj-tony/p/5266896.html