当前位置:首页 > PHP

php 简单框架实现

2026-01-28 22:23:11PHP

实现一个简单的 PHP 框架

以下是一个基础 PHP 框架的实现思路,包含路由、控制器和视图的核心功能。框架结构清晰,适合学习或小型项目。

目录结构

/app
    /controllers
        HomeController.php
    /views
        home.php
/public
    index.php
    .htaccess
/config
    routes.php

路由系统

/config/routes.php 中定义路由规则:

<?php
return [
    '/' => ['HomeController', 'index'],
    '/about' => ['HomeController', 'about']
];

前端控制器

/public/index.php 作为入口文件:

php 简单框架实现

<?php
require_once '../config/routes.php';

$request = parse_url($_SERVER['REQUEST_URI'], PHP_URL_PATH);

if (array_key_exists($request, $routes)) {
    $controller = $routes[$request][0];
    $method = $routes[$request][1];

    require_once "../app/controllers/$controller.php";
    $controllerInstance = new $controller();
    $controllerInstance->$method();
} else {
    header("HTTP/1.0 404 Not Found");
    echo '404 Not Found';
}

控制器示例

/app/controllers/HomeController.php

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

    public function about() {
        echo 'About Page';
    }
}

视图文件

/app/views/home.php

php 简单框架实现

<!DOCTYPE html>
<html>
<head>
    <title>Home Page</title>
</head>
<body>
    <h1>Welcome to our simple PHP framework</h1>
</body>
</html>

URL重写

/public/.htaccess 文件配置:

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

数据库集成

添加简单的数据库连接功能,创建 /config/database.php

<?php
class Database {
    private $connection;

    public function __construct() {
        $this->connection = new PDO(
            'mysql:host=localhost;dbname=test',
            'username',
            'password'
        );
    }

    public function query($sql, $params = []) {
        $stmt = $this->connection->prepare($sql);
        $stmt->execute($params);
        return $stmt;
    }
}

自动加载

实现简单的类自动加载,在入口文件添加:

spl_autoload_register(function ($class) {
    $file = '../app/controllers/' . $class . '.php';
    if (file_exists($file)) {
        require_once $file;
    }
});

这个简单框架包含了 MVC 的基本结构,可以进一步扩展添加中间件、依赖注入容器等功能。实际项目中建议使用成熟的框架如 Laravel 或 Symfony。

标签: 框架简单
分享给朋友:

相关文章

css3制作简单动画

css3制作简单动画

CSS3 制作简单动画的方法 CSS3 提供了多种方式制作动画,主要通过 transition、transform 和 animation 属性实现。以下是几种常见的实现方法。 使用 transit…

vue定时器简单实现

vue定时器简单实现

使用 setTimeout 实现单次定时任务 在 Vue 中可以通过 setTimeout 实现单次延迟执行。以下是一个简单示例: export default { methods: {…

实现 vue 框架

实现 vue 框架

实现 Vue 框架的核心思路 Vue 框架的核心功能包括响应式数据绑定、虚拟 DOM 渲染、组件系统等。以下是实现简化版 Vue 框架的关键步骤: 响应式数据系统 通过 Object.defineP…

vue框架实现tab

vue框架实现tab

Vue框架实现Tab切换功能 在Vue中实现Tab切换功能可以通过多种方式完成,以下是两种常见的实现方法: 使用v-if/v-show指令 通过v-if或v-show指令控制不同Tab内容的…

vue 框架如何实现rtsp

vue 框架如何实现rtsp

在Vue中实现RTSP视频流的播放 由于RTSP协议本身不被浏览器原生支持,需要通过转码或中间件技术实现。以下是几种常见的实现方案: 使用WebRTC转流方案 安装必要的依赖库: npm inst…

vue轮播图简单实现

vue轮播图简单实现

使用 Vue 实现轮播图 以下是一个基于 Vue 3 的简单轮播图实现方法,无需依赖第三方库。 基础结构 在 Vue 单文件组件中,通过 v-for 渲染图片列表,并用 CSS 控制切换效果。 &…