📜  php mvc 示例 - PHP (1)

📅  最后修改于: 2023-12-03 14:45:12.106000             🧑  作者: Mango

PHP MVC 示例

在Web开发中,MVC架构模式是一种被广泛使用的模式。MVC代表了Model-View-Controller。这个模式将应用程序分为三个核心部分:模型、视图和控制器。通过将应用程序的逻辑部分与表示部分分离开来,这个模式可以帮助保持代码的清晰度和可维护性。

本示例用PHP语言展示了一个简单的MVC架构,供程序员学习和参考。

目录结构

在本示例中,我们使用了一个经典的MVC目录结构:

app/
|-- controllers/
|   |-- HomeController.php
|   `-- ...
|-- models/
|   |-- UserModel.php
|   `-- ...
|-- views/
|   |-- home/
|   |   |-- index.php
|   |   `-- ...
|   `-- ...
`-- index.php

在这个目录结构中,controllers/是控制器目录,models/是模型目录,views/是视图目录。index.php是整个应用的入口,这里是MVC的控制器。

在本示例中,我们将实现一个简单的用户登录模块:用户可以输入用户名和密码,如果输入正确,就会显示“登录成功”页面;否则,显示“登录失败”页面。

实现流程
第一步:创建Model

在MVC模式中,模型是负责处理数据的部分。我们需要创建一个UserModel,用于处理用户输入的数据,并返回数据是否正确的结果。

UserModel.php

class UserModel {
    public function login($username, $password) {
        if ($username == 'admin' && $password == '123456') {
            return true;
        } else {
            return false;
        }
    }
}

在这个模型中,我们创建了一个名为login()的函数,用于检查用户输入的用户名和密码是否正确。在我们的示例中,如果用户名为“admin”,密码为“123456”,则认为用户输入的正确。

第二步:创建View

视图是MVC模式中负责显示数据的部分。我们需要创建一个视图来呈现用户输入的数据是否正确。

index.php

<html>
<head>
    <title>PHP MVC 示例 - 登录</title>
</head>
<body>
    <h1>用户登录</h1>
    <form action="/" method="post">
        <p>用户名:<input type="text" name="username" /></p>
        <p>密&nbsp;&nbsp;码:<input type="password" name="password" /></p>
        <p><input type="submit" value="登录" /></p>
    </form>
</body>
</html>

在这个视图中,我们创建了一个表单,用于让用户输入用户名和密码。表单的action设置为/,代表将数据发送给控制器处理。

第三步:创建Controller

在MVC模式中,控制器是负责处理用户请求的部分,包括从用户输入中获取数据、调用模型处理数据、选择要呈现的视图等。我们需要创建一个HomeController,用于处理登录请求。

HomeController.php

require_once './models/UserModel.php';

class HomeController {
    public function index() {
        require_once './views/home/index.php';
    }

    public function login() {
        $userModel = new UserModel();

        $username = $_POST['username'];
        $password = $_POST['password'];

        if ($userModel->login($username, $password)) {
            echo "<h1>登录成功!</h1>";
        } else {
            echo "<h1>登录失败!</h1>";
        }
    }
}

在这个控制器中,我们创建了一个名为index()的函数,用于选择呈现给用户的初始视图,和一个名为login()的函数,用于处理用户登录请求。

login()函数中,我们首先使用new关键字创建了UserModel的实例,然后从$_POST数组中获取用户输入的用户名和密码。

接着,我们调用UserModellogin()函数,检查用户输入是否正确。如果正确,就显示“登录成功”页面;否则,就显示“登录失败”页面。

第四步:查询路由

现在我们已经拥有了一个基本的MVC应用程序,但我们还需要编写传入请求的代码。在MVC模式中,通常使用路由来检查请求并选择要调用的控制器方法。在本示例中,我们将连接到 / URL,这样我们将调用HomeController的index()方法。

index.php

if ($_SERVER['REQUEST_METHOD'] == 'POST') {
    require_once './controllers/HomeController.php';
    (new HomeController())->login();
} else {
    require_once './controllers/HomeController.php';
    (new HomeController())->index();
}

在这里,我们检查了HTTP请求的方法。如果是POST请求,我们调用HomeControllerlogin()方法;否则,我们调用HomeControllerindex()方法,显示初始登录页面。

总结

MVC是一种常用的Web开发架构,它将应用程序分为三个核心部分:模型、视图和控制器。本示例演示了如何创建基本的MVC应用程序,这应该对你有所帮助。