当前位置:首页 > PHP

php实现mvc

2026-02-13 14:00:40PHP

PHP实现MVC架构

MVC(Model-View-Controller)是一种常用的软件设计模式,用于分离业务逻辑、数据和界面。以下是PHP实现MVC架构的核心要点:

目录结构设计

典型的MVC目录结构如下:

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

入口文件

public/index.php中设置前端控制器:

require '../app/bootstrap.php';
$router = new Router();
$router->dispatch();

路由处理

创建简单的路由类:

class Router {
    public function dispatch() {
        $url = parse_url($_SERVER['REQUEST_URI'], PHP_URL_PATH);
        $url = explode('/', trim($url, '/'));

        $controller = isset($url[0]) ? ucfirst($url[0]) . 'Controller' : 'HomeController';
        $action = isset($url[1]) ? $url[1] : 'index';

        if (class_exists($controller)) {
            $controllerInstance = new $controller();
            if (method_exists($controllerInstance, $action)) {
                $controllerInstance->$action();
            } else {
                // 处理404
            }
        } else {
            // 处理404
        }
    }
}

控制器示例

class HomeController {
    public function index() {
        $model = new HomeModel();
        $data = $model->getData();

        $view = new View('home/index');
        $view->render($data);
    }
}

模型实现

class HomeModel {
    public function getData() {
        // 数据库操作或业务逻辑
        return ['title' => 'Welcome', 'content' => 'MVC Example'];
    }
}

视图处理

class View {
    protected $path;

    public function __construct($viewPath) {
        $this->path = "app/views/{$viewPath}.php";
    }

    public function render($data = []) {
        extract($data);
        include $this->path;
    }
}

视图文件示例

app/views/home/index.php

<!DOCTYPE html>
<html>
<head>
    <title><?= $title ?></title>
</head>
<body>
    <h1><?= $content ?></h1>
</body>
</html>

数据库集成

在模型中集成数据库操作:

class UserModel {
    private $db;

    public function __construct() {
        $this->db = new PDO('mysql:host=localhost;dbname=test', 'user', 'pass');
    }

    public function getUsers() {
        $stmt = $this->db->query('SELECT * FROM users');
        return $stmt->fetchAll(PDO::FETCH_ASSOC);
    }
}

自动加载

实现PSR-4自动加载:

spl_autoload_register(function ($class) {
    $file = __DIR__ . '/../' . str_replace('\\', '/', $class) . '.php';
    if (file_exists($file)) {
        require $file;
    }
});

配置管理

创建配置文件:

php实现mvc

return [
    'database' => [
        'host' => 'localhost',
        'dbname' => 'test',
        'user' => 'root',
        'pass' => ''
    ]
];

这种实现方式提供了MVC的基本结构,可以根据项目需求进一步扩展,如添加中间件、依赖注入等功能。

标签: phpmvc
分享给朋友:

相关文章

php实现搜索功能

php实现搜索功能

实现基本的搜索功能 在PHP中实现搜索功能通常涉及数据库查询。以下是一个简单的实现方式,假设使用MySQL数据库: <?php // 连接数据库 $conn = new mysqli('loc…

基于php的设计与实现

基于php的设计与实现

PHP 设计与实现的关键要素 环境搭建与框架选择 PHP开发需配置服务器环境(如Apache/Nginx)、PHP版本(建议7.4+)及数据库(MySQL/MariaDB)。主流框架包括Laravel…

php实现统计

php实现统计

PHP 实现统计功能 在 PHP 中实现统计功能通常涉及数据的收集、处理和展示。以下是一些常见的统计实现方法: 数据库数据统计 通过 SQL 查询可以直接从数据库中获取统计结果: $conn =…

php实现的进度条

php实现的进度条

PHP 实现的进度条方法 在 PHP 中实现进度条通常可以通过命令行脚本(CLI)或 Web 页面两种方式完成。以下是几种常见的实现方法: 命令行进度条 使用 PHP CLI 实现进度条,可以通过不…

php搜索功能的实现

php搜索功能的实现

实现PHP搜索功能的方法 数据库搜索 使用SQL的LIKE语句进行模糊匹配,适用于简单的搜索需求。 $searchTerm = $_GET['search']; $query = "SELECT *…

排序算法 php实现

排序算法 php实现

以下是用PHP实现的常见排序算法,每种算法均附示例代码和简要说明: 冒泡排序 通过重复比较相邻元素并交换位置实现排序: function bubbleSort($arr) { $n…