
用deepseek创建可运行的简单的php框架
用deepseek创建可运行的简单的php框架
·
用deepseek创建可运行的简单的php框架
构建一个简单的PHP MVC框架(从零开始)
本文将手把手教你构建一个精简的PHP MVC框架,适合学习框架原理和快速开发小型项目。以下是完整实现步骤:
一、框架结构
创建以下目录结构:
/myframework
├── app/
│ ├── controllers/
│ ├── models/
│ └── views/
├── core/
│ ├── Router.php
│ ├── Controller.php
│ └── Model.php
├── public/
│ └── index.php
└── config.php
二、核心组件实现
1. 路由系统 (core/Router.php)
class Router {
protected $controller = 'Home';
protected $method = 'index';
protected $params = [];
public function __construct() {
$url = $this->parseUrl();
// 控制器处理
if (isset($url[0]) && file_exists("../app/controllers/{$url[0]}.php")) {
$this->controller = $url[0];
unset($url[0]);
}
require_once "../app/controllers/{$this->controller}.php";
$this->controller = new $this->controller;
// 方法处理
if (isset($url[1])) {
if (method_exists($this->controller, $url[1])) {
$this->method = $url[1];
unset($url[1]);
}
}
// 参数处理
$this->params = $url ? array_values($url) : [];
// 调用控制器方法
call_user_func_array(
[$this->controller, $this->method],
$this->params
);
}
private function parseUrl() {
if (isset($_GET['url'])) {
return explode('/', filter_var(
rtrim($_GET['url'], '/'),
FILTER_SANITIZE_URL
));
}
}
}
2. 基础控制器 (core/Controller.php)
class Controller {
protected function view($view, $data = []) {
extract($data);
require_once "../app/views/$view.php";
}
}
3. 基础模型 (core/Model.php)
class Model {
protected $db;
public function __construct() {
$this->db = new PDO(
'mysql:host='.DB_HOST.';dbname='.DB_NAME,
DB_USER,
DB_PASS
);
}
// 基础查询方法
public function query($sql) {
return $this->db->query($sql);
}
}
三、配置文件 (config.php)
<?php
// 数据库配置
define('DB_HOST', 'localhost');
define('DB_NAME', 'test');
define('DB_USER', 'root');
define('DB_PASS', '');
// 框架配置
define('BASE_URL', 'http://localhost/myframework/public/');
四、入口文件 (public/index.php)
<?php
// 初始化配置
require_once '../../config.php';
// 自动加载核心类
spl_autoload_register(function ($class) {
require_once '../core/' . $class . '.php';
});
// 启动路由
new Router();
五、创建示例功能
1. 创建首页控制器 (app/controllers/Home.php)
class Home extends Controller {
public function index() {
$data = [
'title' => '欢迎使用MyFramework',
'content' => '这是一个简单的PHP MVC框架示例'
];
$this->view('home/index', $data);
}
}
2. 创建视图文件 (app/views/home/index.php)
<!DOCTYPE html>
<html>
<head>
<title><?= $title ?></title>
</head>
<body>
<h1><?= $title ?></h1>
<p><?= $content ?></p>
</body>
</html>
3. 创建模型示例 (app/models/User.php)
class User extends Model {
public function getAll() {
return $this->query("SELECT * FROM users");
}
}
六、运行与测试
- 配置虚拟主机指向
public/
目录 - 访问
http://localhost/
查看首页 - 尝试创建新路由:
http://localhost/user/list
七、扩展建议
-
添加
.htaccess
实现友好URL:RewriteEngine On RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^(.*)$ index.php?url=$1 [QSA,L]
-
添加以下功能增强框架:
- 中间件系统
- 表单验证器
- ORM功能
- 模板引擎
- 错误处理机制
更多推荐
所有评论(0)