PHP网页怎么运行MVC框架 完整使用方法教程
很多刚接触PHP开发的同学都会遇到一个问题:明明跟着教程写好了代码,可一到运行的时候就报错,尤其是用MVC框架的时候,不知道从哪下手。其实PHP的MVC框架运行逻辑很清晰,只要理清楚入口、路由、控制器、视图这几部分的关联,配置好环境,跑起来非常简单。下面我们就以主流的Laravel框架为例,一步步教大家怎么让PHP网页正常运行MVC框架。
一、运行前的环境准备
要运行PHP的MVC框架,首先得把基础环境搭好,缺一不可:
- PHP版本:Laravel 10要求PHP >= 8.1,记得开启fileinfo、mbstring、openssl等常用扩展
- Composer:PHP的依赖管理工具,用来下载和安装框架
- Web服务器:可以用Apache、Nginx,开发阶段也可以直接用PHP自带的内置服务器
- 数据库(可选):如果项目需要存数据,提前准备好MySQL或者PostgreSQL
二、安装MVC框架(以Laravel为例)
环境就绪后,我们通过Composer来安装Laravel框架,步骤如下:
- 打开命令行工具,进入你想要存放项目的目录
- 执行安装命令,创建名为blog的项目:
composer create-project laravel/laravel blog - 等待安装完成,进入项目目录:
cd blog
安装完成后,项目的目录结构就是标准的MVC分层结构:
app/:存放核心业务代码,控制器、模型都在这个目录下routes/:存放路由定义,用来匹配用户的请求resources/views/:存放视图文件,也就是前端的HTML页面public/:项目的入口目录,入口文件index.php就在这里
三、配置入口和路由
MVC框架的所有请求都会先经过入口文件,我们需要先做好基础配置:
1. 入口文件说明
框架的入口文件是public/index.php,它的作用是加载框架的核心依赖,启动应用,然后把请求交给路由处理,我们不需要修改这个文件的内容,只要保证web服务器的根目录指向public目录就行。
2. 定义第一个路由
打开routes/web.php文件,这是定义网页路由的地方,我们加一个简单的路由规则:
<?php
use Illuminate\Support\Facades\Route;
// 定义一个访问 /hello 的GET请求路由
Route::get('/hello', function () {
return 'Hello,这是我的第一个MVC框架页面';
});
// 定义一个指向控制器的路由
Route::get('/article', [\App\Http\Controllers\ArticleController::class, 'index']);上面第一段路由是直接返回字符串,第二段路由会把请求交给ArticleController控制器的index方法处理,这就是MVC里路由到控制器的核心逻辑。
四、创建控制器和视图
接下来按照MVC的分层来写业务代码,先创建控制器:
1. 创建控制器
可以通过Artisan命令快速生成控制器,在命令行执行:php artisan make:controller ArticleController,生成的控制器文件在app/Http/Controllers/ArticleController.php,我们修改它的内容:
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
class ArticleController extends Controller
{
// 处理 /article 请求的方法
public function index()
{
// 准备要传给视图的数据
$articleList = [
['title' => 'PHP MVC框架入门教程', 'author' => '张三'],
['title' => 'Laravel路由配置详解', 'author' => '李四'],
];
// 渲染视图,并把数据传给视图
return view('article', ['list' => $articleList]);
}
}控制器的作用就是接收请求、处理业务逻辑、准备数据,然后把数据交给视图渲染,这就是MVC里Controller的职责。
2. 创建视图文件
视图就是我们最终展示给用户的页面,在resources/views/目录下新建article.blade.php文件(Laravel用的是Blade模板引擎):
<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>文章列表</title>
</head>
<body>
<h1>文章列表</h1>
<ul>
<?php foreach ($list as $item): ?>
<li>
<strong><?php echo $item['title']; ?></strong>
<span>作者:<?php echo $item['author']; ?></span>
</li>
<?php endforeach; ?>
</ul>
</body>
</html>视图文件只负责展示数据,不包含复杂的业务逻辑,这就是MVC里View的职责。
五、启动项目并访问
开发阶段不需要配置复杂的Nginx或者Apache,直接用PHP内置服务器就可以运行:
- 进入项目根目录,执行命令:
php artisan serve - 命令会输出访问地址,一般是
http://127.0.0.1:8000 - 打开浏览器,访问
http://127.0.0.1:8000/hello,就能看到我们之前定义的返回字符串 - 访问
http://127.0.0.1:8000/article,就能看到渲染好的文章列表页面
六、常见问题排查
如果运行的时候遇到问题,可以按下面的思路排查:
- 访问404:检查路由是否定义正确,web服务器的根目录是否指向
public目录 - 提示类不存在:检查控制器命名空间是否正确,有没有执行
composer dump-autoload重新生成自动加载文件 - 视图找不到:检查视图文件名是否正确,有没有放在
resources/views/目录下 - 权限问题:如果是Linux系统,检查
storage和bootstrap/cache目录是否有写入权限
到这里,一个最简单的PHP MVC框架运行的例子就完成了。实际开发中模型(Model)层用来处理数据库相关的逻辑,你可以在app/Models/目录下创建模型,在控制器里调用模型获取数据,再传给视图渲染,整个MVC的流程就完全跑通了。