PHP仿tp实现mvc框架基本设计思路与实现方法分析
副问题[/!--empirenews.page--]
本篇章节讲授PHP仿tp实现mvc框架根基计划思绪与实现要领。分享给各人供各人参考,详细如下: 仿tp mvc根基计划与简质朴现 一:文件加载知识 变量 常量 函数 类
文件加载的函数可能行使定名空间: 工场模式参阅: class = ucfirst(strtolower($class)).'Controller'; //对类名举办安详处理赏罚,并加上节制器后缀 $this->method = strtolower($method); //对要领名举办安详处理赏罚 $this->work($this->class,$this->method); } public function work($class,$method){ // 把文件定名成 (类名.class.php的情势),就可以通过类名找到文件。 //include '文件名(文件在此外处所)'; #譬喻 include './index.php'; 引入文件然后实例化类。 $c = new $class; //实例化类 $c->$method(); //会见类的要领 } }至此我们可以通过url的 $_GET 参数来办理 譬喻: h为前靠山,v为节制器,c为模板。
array["$key"] = $val;
}else{
$this->array["$key"] = compact($val);
}
}
public function display($tpl = ''){ // 模板为空自动加载。
$this->assign($this->key,$this->val);
extract($this->array);
// 假如模板为空就在这里按照get参数添加可能通过 $_SERVER['PATH_INFO']; 转换获得。(下面讲授)
if(file_exists($tpl)){ //模板存在就加载文件。
include $tpl;
}
}
}
//担任总model。这个model名字和节制器model的名字是一样的。担任要领同Controller,总model必需必要加上一个return。数据处理赏罚的indexmodel可以加return,也可以不加。
class IndexModel extends Model{
public function index(){
// 数据处理赏罚。
// 必要返回数据就加上return。
}
}
class IndexController extends Controller{ // 担任
public function index(){
$m = Model("index");
echo '实例化后的index要领 '; $this->assign('m',$m); // 分派数据。 $this->display('index.html'); // 模板 } } mvc固然实现可是不足人道化,由于每次都要加上get参数,变得很冗长,办理的要害在于 用这个替代掉h m v三个参数。 1. 当输入url为: 2. U 要领的实现。从头改写 每次进入进口文件index.php都把他的PHP_INFO参数转换为数组,在节制器可能其他的处所只要挪用这个参数就行了。 3. url重写,去掉 index.php 打开apache设置文件重写模块, 根下插手的改写文件 .htaccess 内容:
Options +FollowSymlinks
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ index.php/$1 [QSA,PT,L]
在赏识器输入url: 200 重写状态ok。 发明 4. 模板替代(思绪) (编辑:湖南网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |