php mvc架构的简单例子

admin12个月前 (03-20)it知识806

以下是一个简单的 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)合作或直接与...

南山经

南山经之首曰鹊山。其首曰招瑶之山,临于西海之上。多桂多金玉。有草焉,其状如韭而青华,其名曰祝馀,食之不饥。有木焉,其状如榖而黑理,其华四照。其名曰迷榖,佩之不迷。有兽焉,其状如禺而白耳,伏行人走,其名...

为政篇--论语

子曰:“为政以德,譬如北辰,居其所而众星共之。”  子曰:“《诗》三百,一言以蔽之,曰:‘思无邪’。”  子曰:“道之以政,齐之以刑,民免而无耻。道之以德,齐之以礼,有耻且格。”  子曰:“吾十有五而...

前端是目前应用最广的语言

一、JavaScript 的主导地位‌核心语言地位‌JavaScript 是当前前端开发的绝对主流语言,超过 95% 的现代网站通过 JavaScript 实现动态交互功能,其语法简洁性和浏览器原生支...