MVC是一种将应用程序分为模型、视图和控制器三层的架构模式,通过分离数据逻辑、用户界面和控制流程,提升PHP项目的可维护性与扩展性。

在PHP开发中,使用MVC(Model-View-Controller)架构可以有效实现代码的分层与解耦,提升项目的可维护性和扩展性。虽然PHP本身并不强制要求使用某种架构,但通过合理的目录结构和逻辑划分,完全可以手动实现MVC模式。
MVC是一种软件设计模式,将应用程序分为三个核心组件:
要实现一个简单的MVC结构,需要规划好项目目录,并编写对应组件的类文件。
典型目录结构示例:
立即学习“PHP免费学习笔记(深入)”;
/project
/controllers
UserController.php
/models
UserModel.php
/views
user_list.php
user_add.php
/index.php
1. 模型(Model):处理用户数据操作
创建 models/UserModel.php:
public function __construct($pdo) {
$this->pdo = $pdo;
}
public function getAllUsers() {
$stmt = $this->pdo->query("SELECT * FROM users");
return $stmt->fetchAll();
}
public function addUser($name, $email) {
$stmt = $this->pdo->prepare("INSERT INTO users (name, email) VALUES (?, ?)");
return $stmt->execute([$name, $email]);
}}
<p><strong>2. 视图(View)</strong>:显示用户列表</p>
<p>创建 <code>views/user_list.php</code>:</p>
```php
<!DOCTYPE html>
<html>
<head><title>用户列表</title></head>
<body>
<h1>用户列表</h1>
<ul>
<?php foreach ($users as $user): ?>
<li><?php echo htmlspecialchars($user['name']); ?> (<?php echo htmlspecialchars($user['email']); ?>)</li>
<?php endforeach; ?>
</ul>
<a href="index.php?route=add">添加用户</a>
</body>
</html>3. 控制器(Controller):协调请求与响应
创建 controllers/UserController.php:
public function __construct($pdo) {
$this->model = new UserModel($pdo);
}
public function listAction() {
$users = $this->model->getAllUsers();
include 'views/user_list.php';
}
public function addAction() {
if ($_POST) {
$this->model->addUser($_POST['name'], $_POST['email']);
header('Location: index.php?route=list');
exit;
}
include 'views/user_add.php';
}}
<p><strong>4. 入口文件(index.php)</strong>:路由分发</p>
```php
<?php
$pdo = new PDO('mysql:host=localhost;dbname=test', 'root', '');
$route = $_GET['route'] ?? 'list';
$controller = new UserController($pdo);
switch ($route) {
case 'add':
$controller->addAction();
break;
case 'list':
default:
$controller->listAction();
break;
}采用MVC架构后,代码职责清晰,便于团队协作和后期维护。例如修改页面样式时只需调整View,不影响数据逻辑。
基本上就这些。手动实现MVC不复杂,但容易忽略细节,保持目录清晰和职责分离是关键。
以上就是php调用MVC架构实现_php调用模型视图控制器分离的详细内容,更多请关注php中文网其它相关文章!
PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号