当前位置:首页 > PHP

php简单实现 mvc

2026-01-30 08:42:33PHP

实现 MVC 的基本结构

MVC(Model-View-Controller)是一种常见的软件设计模式,用于分离业务逻辑、数据和界面。以下是 PHP 中实现 MVC 的简单步骤。

目录结构

创建以下目录结构:

app/
    controllers/
    models/
    views/
public/
    index.php

入口文件 (public/index.php)

负责初始化并路由请求:

require '../app/controllers/Controller.php';
require '../app/models/Model.php';

$controller = isset($_GET['c']) ? $_GET['c'] : 'Home';
$action = isset($_GET['a']) ? $_GET['a'] : 'index';

$controllerClass = $controller . 'Controller';
require "../app/controllers/$controllerClass.php";

$instance = new $controllerClass();
$instance->$action();

基础控制器 (app/controllers/Controller.php)

提供控制器基类:

class Controller {
    protected function render($view, $data = []) {
        extract($data);
        require "../app/views/$view.php";
    }
}

示例控制器 (app/controllers/HomeController.php)

实现具体业务逻辑:

class HomeController extends Controller {
    public function index() {
        $model = new Model();
        $data = $model->getData();
        $this->render('home/index', ['data' => $data]);
    }
}

模型 (app/models/Model.php)

处理数据逻辑:

class Model {
    public function getData() {
        return ['title' => 'MVC Example', 'content' => 'Welcome to MVC'];
    }
}

视图 (app/views/home/index.php)

显示数据:

<!DOCTYPE html>
<html>
<head>
    <title><?= $data['title'] ?></title>
</head>
<body>
    <h1><?= $data['content'] ?></h1>
</body>
</html>

URL 访问方式

通过以下 URL 访问:

http://example.com/public/index.php?c=Home&a=index

路由改进

可以使用更优雅的路由方式,例如通过 .htaccess 实现:

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ public/index.php?url=$1 [QSA,L]

然后修改入口文件解析 URL 参数。

自动加载

使用 spl_autoload_register 自动加载类:

php简单实现 mvc

spl_autoload_register(function ($class) {
    $paths = [
        '../app/controllers/',
        '../app/models/'
    ];

    foreach ($paths as $path) {
        $file = $path . $class . '.php';
        if (file_exists($file)) {
            require $file;
        }
    }
});

这个简单实现展示了 MVC 的核心概念,实际项目中可能需要更复杂的路由、依赖注入和错误处理机制。

标签: 简单php
分享给朋友:

相关文章

vue增删改查简单实现

vue增删改查简单实现

Vue 增删改查简单实现 以下是一个基于 Vue 3 的简单增删改查(CRUD)实现示例,使用 Vue 的 Composition API 和响应式数据管理。 初始化项目 确保已安装 Vue 3 环…

php实现分页

php实现分页

PHP实现分页的基本方法 使用LIMIT和OFFSET进行数据库查询分页。通过计算当前页码和每页显示数量,动态生成SQL语句。 $page = isset($_GET['page']) ? (int…

php实现websocket

php实现websocket

PHP 实现 WebSocket WebSocket 是一种在单个 TCP 连接上进行全双工通信的协议。PHP 可以通过多种方式实现 WebSocket 功能,以下是几种常见的方法: 使用 Ratc…

php实现登录

php实现登录

PHP 登录功能实现 数据库连接与用户表创建 创建一个数据库连接文件 db.php,用于管理数据库连接。MySQL 示例代码如下: <?php $host = 'localhost'; $db…

php购物车实现

php购物车实现

PHP购物车实现方法 使用PHP实现购物车功能可以通过多种方式完成,以下是几种常见的实现方法: Session存储购物车数据 利用PHP的$_SESSION超全局变量存储购物车数据是最简单的方法。用…

php 购物车实现

php 购物车实现

数据库设计 购物车功能通常需要设计数据库表存储商品和用户信息。常见的表包括products(商品表)、users(用户表)和cart(购物车表)。cart表通常包含字段:id(主键)、user_id(…