php mvc架构的简单例子

admin11个月前 (03-20)it知识761

以下是一个简单的 PHP MVC 架构示例,包含基本的模型(Model)、视图(View)和控制器(Controller)结构:

目录结构

project/

├── app/

│   ├── controllers/

│   │   ├── HomeController[文].php

│   │   └── UserController[章].php

│   ├── models/

│   │   └── User.php

│   └── views/

│       ├── home/

│       │   └── index.php

│       └── user/

│           └── list.php

├── public/

│   └── index.php

└── .htaccess


1.入口文件 public/index.php

<?php// 自动加载类spl_autoload_register(function ($class) {    $file = __DIR__ . '/../app/' . str_replace('\\', '/', $class) . '.php';    if (file_exists($file)) {        require $file;    }});// 获取请求路径$request = $_SERVER['REQUEST_URI'];$path = parse_url($request, PHP_URL_PATH);// 简单路由switch ($path) {    case '/':        $controller = new \controllers\HomeController();        $controller->index();        break;    case '/user/list':        $controller = new \controllers\UserController();        $controller->list();        break;    default:        http_response_code(404);        echo 'Page not found';        break;}


2. 控制器 app/controllers/HomeController.php

<?phpnamespace controllers;class HomeController {    public function index() {        // 加载视图        require __DIR__ . '/../views/home/index.php';    }}


3. 控制器 app/controllers/UserController.php

<?phpnamespace controllers;use models\User;class UserController {    public function list() {        // 获取数据        $userModel = new User();        $users = $userModel->getAllUsers();                // 传递数据到视图        require __DIR__ . '/../views/user/list.php';    }}


4. 模型 app/models/User.php

<?phpnamespace models;class User {    // 模拟数据库数据    public function getAllUsers() {        return [            ['id' => 1, 'name' => 'Alice'],            ['id' => 2, 'name' => 'Bob'],            ['id' => 3, 'name' => 'Charlie']        ];    }}


5. 视图 app/views/home/index.php

<!DOCTYPE html><html><head>    <title>Home</title></head><body>    <h1>Welcome to Home Page</h1>    <a href="/user/list">View Users</a></body></html>


6. 视图 app/views/user/list.php

<!DOCTYPE html><html><head>    <title>User List</title></head><body>    <h1>User List</h1>    <ul>        <?php foreach ($users as $user): ?>            <li><?= htmlspecialchars($user['name']) ?></li>        <?php endforeach; ?>    </ul>    <a href="/">Back to Home</a></body></html>


7. .htaccess 文件(用于URL重写)

<IfModule mod_rewrite.c>    RewriteEngine On    RewriteCond %{REQUEST_FILENAME} !-f    RewriteCond %{REQUEST_FILENAME} !-d    RewriteRule ^(.*)$ /public/index.php [L]</IfModule>



运行说明

  1. 将项目放在 Web 服务器的根目录(如 Apache 的 htdocs

  2. 访问 http://localhost/ 显示首页

  3. 访问 http://localhost/user/list 显示用户列表


标签: 分享IT知识

相关文章

如何写文章

过程,需要一定的技巧和准备。以下是一些写文章的步骤和技巧:确定文章的主题和目的:在开始写作之前,您需要明确文章的主题和目的。这有助于您确定文章的重点和方向。研究和收集信息:在开始写作之前,进行一些研究...

马斯洛理论

生理需求是最低层次的需求,包括人类维持自身生存的最基本要求,包括饥、渴、衣、住、性、健康方面的需求。安全需求包括两个层次,一是归属的需要,即人都有一种归属于一个群体的感情,希望成为群体中的一员,并相互...

黄金秋季

黄金秋季,这是一个充满色彩和韵味的季节。天空湛蓝,阳光明媚,微风轻拂,树叶由绿变黄,由黄变红,最终落叶归根。这是一个大自然最美丽的时刻,一切都在这一刻达到了高潮。秋天的阳光特别柔和,它不像夏天那样灼热...

如何快速建立一个网站

要快速建立一个网站,可以遵循以下步骤:确定网站的目的和需求:在开始建立网站之前,需要明确网站的目的和目标受众,以及网站需要提供哪些内容和服务。这有助于确定网站的设计、功能和内容。选择合适的网站建设平台...

利用网站挣钱的方式

利用网站挣钱的方式多种多样,以下是一些常见且有效的策略:一、广告收入广告展示:通过在网站上放置广告,利用广告点击率或展示次数获得收益。这可以通过与广告平台(如Google AdSense)合作或直接与...

西山经

《西山经》华山之首曰钱来之山。其上多松,其下多洗石。有兽焉,其状如羊而马尾,名曰羬羊,其脂可以已腊。西四十五里曰松果之山,濩水出焉,北流注于渭。其中多铜。有鸟焉,其名曰[虫鸟]渠,其状如山鸡,黑身赤足...

发表评论

访客

看不清,换一张

◎欢迎参与讨论,请在这里发表您的看法和观点。