PHP搭建自己的MVC框架 控制器
程序员文章站
2022-05-20 18:45:15
判断接收到的路由 来进行处理
判断接收到的路由 来进行处理
<?php namespace core\lib; class route { public $ctrl; public $action; public function __construct() { /* * 隐藏index.php * 获取url参数部分 *返回对应控制器方法 */ if(isset($_server['request_uri']) && $_server['request_uri'] !='/'){ $path = $_server['request_uri']; $patharr = explode('/',trim($path,'/')); if(isset($patharr[0])){ $this->ctrl = $patharr[0]; } unset($patharr[0]); if(isset($patharr[1])){ $this->action = $patharr[1]; unset($patharr[1]); }else{ $this->action = 'index'; } $count = count($patharr) + 2; $i = 2; while($i < $count){ if(isset($patharr[$i+1])){ $_get[$patharr[$i]] = $patharr[$i+1]; } $i = $i+2; } } else { $this->ctrl = 'index'; $this->action = 'index'; } } }
最后路由的格式为 index/index/id/3/date/31 格式
通过俩参数去获得get的 值
如 id:3 date:31
如果 date后无值 则跳过循环 得出 id:3
$route = new \core\lib\route(); $ctrlclass = $route->ctrl; $action = $route->action; $ctrlfile = app.'/ctrl/'.$ctrlclass.'ctrl.php'; $ctrlclass = '\\'.module.'\ctrl\\'.$ctrlclass.'ctrl'; if(is_file($ctrlfile)){ include $ctrlfile; $ctrl = new $ctrlclass(); $ctrl->$action(); }else{ throw new \exception('找不到控制器'.$ctrlclass); }
然后得到的数据再去处理
得到对应的控制器 方法 参数
最终得到想要的控制器和方法
上一篇: javaee项目整合FCKeditor
下一篇: 冬季远离感冒七招 多吃葱姜蒜多运动
推荐阅读
-
详解PHP的Yii框架中的Controller控制器
-
在Mac OS上搭建PHP的Yii框架及相关测试环境
-
EpiiAdmin 开源的php交互性管理后台框架, 让复杂的交互变得更简单!Phper快速搭建交互性平台的开发框架,基于Thinkphp5.1+Adminlte3.0+Require.js。
-
PHP的MVC模式实现原理分析(一相简单的MVC框架范例)
-
【从零开始搭建自己的.NET Core Api框架】(三)集成轻量级ORM——SqlSugar:3.3 自动生成实体类
-
理解vue ssr原理并自己搭建简单的ssr框架
-
php实现最简单的MVC框架实例教程
-
tp5.0框架隐藏index.php入口文件及模块和控制器的方法分析
-
PHP MVC框架【Myphp】的编写
-
PHP原生实现简易的MVC框架