PHP 自定义MVC框架-----码神帅

1.新建根目录

PHP 自定义MVC框架-----码神帅_第1张图片

2.入口文件

PHP 自定义MVC框架-----码神帅_第2张图片

3. 核心类  Framework.php

     /*
*框架核心类
*运行框架
*自动加载类
*/
namespace Framework;
use Exception;
class Framework{
public $val;
//运行框架
static public function run(){


$route = new route();
$con = $route->con;
$act = $route->act;
if (isset($con) && isset($act)) {
$path = "\\Application\\controller\\".$con."Controller";
// include APP."/controller/".$con."Controller.php";
$obj = new $path();
$obj->$act();
}


}


//类的自动加载
static public function load($class){

$class = str_replace("\\", "/", $class);
$path = DS."/".$class.".php";
// echo $path;
// echo "
";
if (is_file($path)) {
include $path;
}else{
throw new Exception("404 找不到此页面", 1);
}
}


//渲染数据
public function display($name,$value){
$this->val[$name]=$value;
}


//渲染视图页面
public function render($path){
$file = APP."/view/".$path.".html";
if (is_file($file)) {
extract($this->val);
include $file;
}

}

}

4.路由类 route.php

namespace Framework;
class route{
public $con;
public $act;


public function __construct(){


if (isset($_SERVER['PATH_INFO'])) {
if ($_SERVER['PATH_INFO'] != "" && $_SERVER['PATH_INFO'] != "/") {

$PATH=trim($_SERVER['PATH_INFO'],"/");

$PATH_ARR=explode("/", $PATH);

$this->con=isset($PATH_ARR[0])?$PATH_ARR[0]:$_SERVER['config']['controller'];
$this->act=isset($PATH_ARR[1])?$PATH_ARR[1]:$_SERVER['config']['action'];


unset($PATH_ARR[0]);
unset($PATH_ARR[1]);


$num = count($PATH_ARR)+2;


// http://www.cs.com/mouth6/week2/ZhouKao/index.php/index/index/id/4/name/5
for ($i=2; $i <$num; $i++) { 
// echo $i;
// echo '
';
if (isset($PATH_ARR[$i+1])) {
$_GET[$PATH_ARR[$i]]=$PATH_ARR[$i+1];
}
$i++;


}


}
}else{


$this->con=$_SERVER['config']['controller'];
$this->act=$_SERVER['config']['action'];


}

}
}

 ?>

5.公共文件下配置

PHP 自定义MVC框架-----码神帅_第3张图片

6.新建控制器 测试通不通

PHP 自定义MVC框架-----码神帅_第4张图片

7.model 基类

PHP 自定义MVC框架-----码神帅_第5张图片

8.操作数据库 类

PHP 自定义MVC框架-----码神帅_第6张图片

基本成功了,只是整体框架运行思路


你可能感兴趣的:(自定义框架)