mvc实现 PHP
MVC 模式概述
MVC(Model-View-Controller)是一种设计模式,用于将应用程序的逻辑分离为三个核心组件:模型(Model)处理数据,视图(View)负责展示,控制器(Controller)协调两者。PHP 中实现 MVC 通常通过框架(如 Laravel、CodeIgniter)或手动构建。
手动实现 MVC 结构
以下是一个基础的手动实现步骤:
目录结构
app/
├── controllers/ # 控制器
├── models/ # 模型
├── views/ # 视图
public/
└── index.php # 入口文件
入口文件 public/index.php
<?php
require '../app/controllers/UserController.php';
require '../app/models/UserModel.php';
// 路由解析(简化示例)
$controller = new UserController();
$controller->index();
?>
控制器示例 app/controllers/UserController.php
<?php
class UserController {
public function index() {
$model = new UserModel();
$users = $model->getUsers();
include '../app/views/user_list.php';
}
}
?>
模型示例 app/models/UserModel.php
<?php
class UserModel {
public function getUsers() {
// 模拟数据库查询
return ['Alice', 'Bob', 'Charlie'];
}
}
?>
视图示例 app/views/user_list.php
<!DOCTYPE html>
<html>
<body>
<ul>
<?php foreach ($users as $user): ?>
<li><?php echo $user; ?></li>
<?php endforeach; ?>
</ul>
</body>
</html>
使用框架(以 Laravel 为例)
Laravel 提供了完整的 MVC 支持,以下为典型用法:
控制器
通过 Artisan 命令生成:

php artisan make:controller UserController
示例代码:
namespace App\Http\Controllers;
use App\Models\User;
class UserController extends Controller {
public function index() {
$users = User::all();
return view('users.index', ['users' => $users]);
}
}
模型
生成模型并关联数据库:

php artisan make:model User -m
模型文件 app/Models/User.php:
namespace App\Models;
use Illuminate\Database\Eloquent\Model;
class User extends Model {
protected $fillable = ['name', 'email'];
}
视图
视图文件 resources/views/users/index.blade.php:
@foreach ($users as $user)
<p>{{ $user->name }}</p>
@endforeach
路由
定义路由 routes/web.php:
use App\Http\Controllers\UserController;
Route::get('/users', [UserController::class, 'index']);
关键注意事项
- 单一职责原则:确保每个组件只负责特定功能(模型不处理显示逻辑,视图不直接操作数据)。
- 路由机制:手动实现时需自行解析 URL 并调用对应控制器。
- 依赖管理:建议使用 Composer 自动加载类文件,避免手动
require。
通过手动实现可深入理解 MVC 原理,而框架能显著提升开发效率。根据项目需求选择合适方案。






