当前位置:首页 > PHP

php 简单框架实现

2026-02-13 20:31:23PHP

实现一个简单的 PHP 框架

PHP 框架可以帮助快速构建应用程序,以下是一个基础框架的实现方法,包含路由、控制器和视图功能。

目录结构

/myframework
    /app
        /controllers
            HomeController.php
        /views
            home.php
    /public
        index.php
    /core
        Router.php
        Controller.php

核心路由实现

创建 /core/Router.php 文件处理路由:

class Router {
    protected $routes = [];

    public function addRoute($uri, $controller) {
        $this->routes[$uri] = $controller;
    }

    public function dispatch($uri) {
        if (array_key_exists($uri, $this->routes)) {
            $controllerAction = explode('@', $this->routes[$uri]);
            $controller = $controllerAction[0];
            $method = $controllerAction[1];

            require_once "../app/controllers/$controller.php";
            $controllerInstance = new $controller();
            $controllerInstance->$method();
        } else {
            throw new Exception("No route found for URI: $uri");
        }
    }
}

基础控制器

创建 /core/Controller.php 作为基础控制器:

class Controller {
    protected function view($viewName, $data = []) {
        extract($data);
        require_once "../app/views/$viewName.php";
    }
}

示例控制器

创建 /app/controllers/HomeController.php

class HomeController extends Controller {
    public function index() {
        $data = ['title' => 'Home Page'];
        $this->view('home', $data);
    }
}

视图文件

创建 /app/views/home.php

<!DOCTYPE html>
<html>
<head>
    <title><?php echo $title; ?></title>
</head>
<body>
    <h1>Welcome to <?php echo $title; ?></h1>
</body>
</html>

入口文件

创建 /public/index.php 作为应用入口:

php 简单框架实现

require_once '../core/Router.php';

$router = new Router();
$router->addRoute('/', 'HomeController@index');

$uri = parse_url($_SERVER['REQUEST_URI'], PHP_URL_PATH);
$router->dispatch($uri);

运行框架

  1. 将项目放在 Web 服务器目录下(如 Apache 的 htdocs)
  2. 配置服务器将请求重定向到 /public/index.php
  3. 访问 http://localhost 即可看到首页

扩展功能建议

  • 添加数据库支持(如 PDO 封装)
  • 实现模型层处理数据
  • 增加中间件支持
  • 添加配置管理
  • 实现自动加载(PSR-4)
  • 增加错误处理机制

这个基础框架实现了 MVC 的核心概念,可以根据需要进一步扩展功能。

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

相关文章

基于vue框架实现

基于vue框架实现

基于 Vue 框架实现功能需结合其核心特性(如组件化、响应式数据绑定)和生态工具(如 Vue Router、Pinia)。以下是关键实现步骤和代码示例: 项目初始化与基础配置 使用 Vite 或 V…

vue实现简单弹幕效果

vue实现简单弹幕效果

实现基础弹幕效果 在Vue中实现弹幕效果需要结合CSS动画和动态数据渲染。以下是一个基础实现方案: 模板部分 <template> <div class="danmu-con…

vue框架实现视频播放

vue框架实现视频播放

Vue框架实现视频播放的方法 在Vue中实现视频播放可以通过多种方式完成,以下介绍几种常见的方法: 使用HTML5 <video>标签 Vue可以直接使用HTML5的<video&…

vue简单的列表实现

vue简单的列表实现

实现简单的 Vue 列表 在 Vue 中实现列表功能通常使用 v-for 指令。以下是一个基础的列表实现示例: <template> <div> <ul&g…

vue实现页面骨框架

vue实现页面骨框架

Vue 实现页面骨架屏的方法 骨架屏(Skeleton Screen)是一种优化用户体验的技术,在页面数据加载前展示占位内容,避免空白或闪烁。以下是几种 Vue 实现骨架屏的方案: 使用 CSS 或…

vue简单查询功能实现

vue简单查询功能实现

实现 Vue 简单查询功能 1. 创建 Vue 实例与数据绑定 在 Vue 实例的 data 中定义查询关键词 searchQuery 和数据列表 items。通过 v-model 实现输入框与数据…