设计一个简单的mvc映射
2020-12-13 03:55
标签:style class c get a 文件 在工作时,有一套框架,并不是很适合做后台,为此我在这个框架加了简单的mvc映射 首先为方便可以随时new自己想要的类,注册自己的__autoload方法,这里封装成一个类,当然类里面要封装好查找路径,注册的时候就是调用内部的loader成员方法: spl_autoload_register(array($this, ‘loader‘)); 现在,我在Action文件夹(前面已经会自动加载这个文件夹相应的类文件),、 创建一个抽象类Action_Abstract,里面有抽象方法run,后期有action的类如Action_List就继承它,并默认必须实现run方法 在抽像类中,我想写一个display方法,显示view层,这样在List类就可以直接调用
$this->display(‘templateName‘) 为了让view层可以直接获取到action对象的栈上变量,即比如在List的run方法中,设置$this->param = ‘test‘; 在view层就可以直接通过 $test 获取到,我在抽象类的display方法 foreach($this as $k=>$v){ include($path.$templateName.‘.html‘) 即可实现,但这样有个问题,在抽象类的一些私有或保护成员变量,内部的派生类对象继承了下来,这里就会给那些变量也赋值了 有没有什么方法可以获取到内部派生类对象的成员变量的属性? 答案是用映射 $rf = new ReflectionObject($this); 这样就只让public变量输出了 设计一个简单的mvc映射,搜素材,soscw.com 设计一个简单的mvc映射 标签:style class c get a 文件 原文地址:http://www.cnblogs.com/walkfuture/p/3729768.html
$($k) = $v;
}
$properties =
$rf->getProperties();
foreach($properties as $property){
if($property->isPublic()){ //只输出public成员变量到模板
$keyName =
$property->getName();
${$keyName} =
$this->$keyName;
}
}