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

本文介绍了如何从零开始创建一个PHP MVC框架,包括创建根目录、入口文件、核心类Framework.php,以及路由类Route.php。在核心类中实现了框架运行、类自动加载、数据渲染和视图展示的功能。路由类则负责解析URL并设置控制器和操作。通过配置文件和控制器的设置,实现了简单的路由分发。目前框架基本成型,可以进行进一步的功能扩展和优化。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.新建根目录

2.入口文件


3. 核心类  Framework.php

     <?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 "</br>";
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

<?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 '<br>';
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.公共文件下配置


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


7.model 基类


8.操作数据库 类


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


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值