cmstop传递什么控制器和方法---就实例化该控制器
object顶级类
class object
第一级抽象类controller
abstract class controller extends object
第二级抽象类controller_abstract 继承controller 祖父类
abstract class controller_abstract extends controller
cmstop.php主程序 
设置属性public $app, $controller, $action
用来接收并保存当前请求的模块,控制器,和方法
实例化该对象,
$obj = new $this->class($this);
在cmstop.php中实例化$this.
这次接收到的$this->controller= content
所以.实例化的是content类,调用的方法execute()没有的时候.就到父类中找
$response = $obj->execute();
该execute方法在父类controller_abstract 中
当前所有控制器.都是继承这个父类抽象类controller_abstract 中
在父类中的$this就是类名controller_admin_content
(实例化时的属性$this->controller= content)
父类的$this->app就是实例化时.包含的所有有值的属性
父类的$this->app->action就是所有属性中的action属性
抽象父类的作用:
if ($this->action_exists($this->app->action))//判断该当前类是否存在一个方法  存在就让他运行..call他
用户--方法的--数组
{
$response = call_user_func_array(array($this, $this->app->action), $this->app->args);
}
这样确保.$_GET传递过来什么控制器.cmstop就实例化哪个控制器.
并且调用该对象父类抽象类中方法,$response = $obj->execute();
实例化时.是什么控制器.什么方法.就call他调用该控制器和方法
call_user_func_array(array($this, $this->app->action)
主程序中 定义公用属性
class cmstop extends object
public $app, $controller, $action
接收用户请求的参数
$this->app = 'system';
$this->controller = 'content';
$this->action = 'index';
实例化$this.就是把这些属性作为参数传递给controller_admin_content类.并且触发构造方法.
$obj = new $this->class($this);
再传递给父类的构造方法,
父类检查是否存在请求的方法
if($this->action_exists($this->app->action))
存在就call他
$response = call_user_func_array(array($this, $this->app->action), $this->app->args);
$obj = new $this->class($this);
实例化时.做了2件事.
1实例化该属性中的controller类.
2把属性值作为参数,传递给该类的构造函数,再传递给父类的构造函数
class controller_admin_content extends controller_abstract
	function __construct(& $app)
	{
		parent::__construct($app);
	}
cmstop传递什么控制器和方法---就实例化该控制器的更多相关文章
- 基于TP框架的ThinkCMF,控制器display方法源码分析
		
昨天在写代码的时候,看见写了无数次的模版渲染方法:$this->display(),突然很想弄清楚它是如何实现的. 今天不忙,就分析了一下. class TestController exten ...
 - ThinkPHP 3.2.2跨控制器调用方法
		
所谓跨控制器调用,指的是在一个控制器中调用另一个控制器的某个方法.在ThinkPHP中有三种方式实现跨控制器调用: 直接实例化: A()函数实例化; R()函数实例化. (1)直接实例化 直接实例 ...
 - YII2中使用RBAC对模块,控制器,方法的权限控制以及规则的使用
		
在使用YII2中自带的RBAC时,需要先配置config/web.php: return [ // ... 'components' => [ 'authManager' => [ 'cl ...
 - ThinkPHP跨控制器调用方法
		
跨控制器调用方法 1. 先造对象,再调用里面的方法 $sc=new \Home\Controller\IndexController(); 用绝对路径找echo $sc->ShuChu(); ...
 - 创建控制器的方法、控制器加载view过程、控制器view的生命周期、多控制器组合
		
在介绍四大对象的那篇博客中,可以基本了解到程序启动的过程: main-->UIApplicationMain-->创建UIApplication的实例和app代理AppDelegate的实 ...
 - 第一零三天上课  PHP TP框架下控制器的方法分离
		
(1)配置信息 修改配置文件->Config.php (配置后,原先的控制方法无效) 'ACTION_BIND_CLASS' => TRUE, // 控制器方法分离 (2)在Control ...
 - 关于ThinkPHP控制器的方法失效的问题
		
今天发现控制器的方法失效了,用了排除法,找了长时间的原因,都没有找出来,后来干脆把home模块中的控制器和视图文件都复制到bbs模块下,竟然也不行. 这说明了控制器和视图没有问题,一定是模块的配置有问 ...
 - Python中的__new__()方法与实例化
		
@Python中的__new__()方法与实例化 __new__()是在新式类中新出现的方法,它作用在构造方法建造实例之前,可以这么理解,在Python 中 存在于类里面的构造方法__init__ ...
 - spring中获取dao或对象中方法的实例化对象
		
spring中获取dao的中方法的实例化对象: //获取应用上下文对象 ApplicationContext ctx = new ClassPathXmlApplicationContext(&quo ...
 
随机推荐
- php分类
			
<?php /* * PHP分页类 * @package Page * @Created 2013-03-27 * @Modify 2013-03-27 * @link http://www.6 ...
 - jquery学习笔记3  jq遍历
			
遍历方式:向上(父级元素) 向下(子元素) 水平(同胞元素) 一.向上遍历 parent() 向上一级 放回被选元素的直接父元素 parents() 返回被选元 ...
 - Weex-语法笔记 一
			
p.p1 { margin: 0.0px 0.0px 2.0px 0.0px; font: 14.0px "PingFang SC Semibold"; color: #45454 ...
 - 重读The C programming Lanuage 笔记四:c预处理
			
C预处理器执行宏替换.条件编译以及包含指定的文件.以#开头的命令行就是与处理器的对象.这些命令行的语法独立于语言的其他部分,它们可以出现在任何地方,其作用可延续到所在编译单元的末尾(与作用域无关).行 ...
 - Deploy Django in Windows
			
配置 安装目录 D:\PythonWebSW\(免安装) d:\Program Files\ (安装版) 工作目录 E:/PythonWeb/code 项目名称 voith_sales Insta ...
 - react起步
			
react是一个用于构建用户界面JAVASCRIPT库. react主要用于构建UI,是MVC中的V(视图). react特点 1.声明式设计 2.高效 3.灵活 4.JSX 5.组件 6.单项响应的 ...
 - oracle 写入txt
			
分几个步骤 1,创建输出路径,比如你要在/orcl/dir目录下输出,你就先要建立好这个路径,并在root用户下 chmod 777 /orcl/dir 2,sqlplus下以sysdba登录,执行以 ...
 - 【LeetCode】462. Minimum Moves to Equal Array Elements II
			
Given a non-empty integer array, find the minimum number of moves required to make all array element ...
 - 14.hibernate的反向生成实现全套增删改查
			
图片顺序就是步骤顺序 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18.
 - jquey(判断文本框输入的网址链接是否符合规则)
			
今天遇到一个问题,我要在文本框中输入一个网址链接,使其跳转.但是如何验证,我首先想到了正则表达式.对的,就是你想的那样,我对正则一知半解,但在我哥哥帮助下,最终是 实现 了效果.在此,来一发,分享一下 ...