当前位置:首页 > 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。

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

相关文章

vue实现框架效果

vue实现框架效果

Vue 实现框架效果的方法 Vue.js 可以通过多种方式实现框架效果,包括使用内置指令、组件封装或第三方库。以下是几种常见的方法: 使用 Vue 指令实现基础框架效果 通过 Vue 的 v-if…

css3制作简单动画

css3制作简单动画

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

实现 vue 框架

实现 vue 框架

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

jquery 框架

jquery 框架

jQuery 简介 jQuery 是一个快速、简洁的 JavaScript 库,简化了 HTML 文档遍历、事件处理、动画和 Ajax 交互。其设计宗旨是“Write Less, Do More”,通…

vue框架怎么实现

vue框架怎么实现

Vue框架实现步骤 安装Vue.js 通过npm或CDN引入Vue.js。npm安装命令:npm install vue。CDN引入方式:<script src="https://cdn.jsd…

vue框架实现增加

vue框架实现增加

使用 Vue.js 实现数据新增功能 在 Vue.js 中实现数据新增功能通常涉及表单绑定、事件处理和状态管理。以下是一个完整的实现示例: 表单绑定与数据模型 创建表单并绑定数据模型: <…