当前位置:首页 > PHP

php 简单框架实现

2026-02-27 19:25:15PHP

实现一个简单的 PHP 框架

PHP 框架的核心通常包含路由、请求处理、控制器和视图渲染。以下是一个极简框架的实现示例,适合理解框架的基本原理。

目录结构

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

核心路由实现

/core/Router.php 中定义路由解析逻辑:

class Router {
    protected $routes = [];

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

    public function dispatch($uri, $method) {
        if (isset($this->routes[$method][$uri])) {
            $controller = $this->routes[$method][$uri];
            $this->callAction(...explode('@', $controller));
        } else {
            throw new Exception("Route not found");
        }
    }

    protected function callAction($controller, $action) {
        $controller = new $controller;
        $controller->$action();
    }
}

请求处理基础

/core/Request.php 中封装请求数据:

php 简单框架实现

class Request {
    public static function uri() {
        return trim(parse_url($_SERVER['REQUEST_URI'], PHP_URL_PATH), '/');
    }

    public static function method() {
        return $_SERVER['REQUEST_METHOD'];
    }
}

基础控制器

/core/Controller.php 中定义控制器基类:

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

入口文件

/public/index.php 中初始化框架:

php 简单框架实现

require '../core/Router.php';
require '../core/Request.php';
require '../core/Controller.php';

$router = new Router();

// 注册路由
$router->addRoute('GET', '', 'HomeController@index');
$router->addRoute('GET', 'about', 'HomeController@about');

$uri = Request::uri();
$method = Request::method();

$router->dispatch($uri, $method);

示例控制器

/app/controllers/HomeController.php 中实现控制器:

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

    public function about() {
        $this->view('home', ['title' => 'About Us']);
    }
}

视图文件

/app/views/home.php 中创建简单视图:

<!DOCTYPE html>
<html>
<head>
    <title><?= $title ?></title>
</head>
<body>
    <h1><?= $title ?></h1>
</body>
</html>

运行方式

  1. 将项目放在 PHP 环境(如 Apache 或 Nginx)的 web 目录
  2. 配置 web 服务器将请求指向 /public/index.php
  3. 访问 http://localhosthttp://localhost/about 查看效果

这个实现展示了框架的基本组件,可根据需要扩展数据库支持、中间件、依赖注入等功能。

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

相关文章

hbuilder框架vue实现

hbuilder框架vue实现

HBuilder框架中实现Vue的步骤 环境准备 确保已安装HBuilder X(最新版本)和Node.js。在HBuilder X中创建或打开一个项目,选择“文件” > “新建” > “…

vue框架怎么实现

vue框架怎么实现

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

vue简单功能实现

vue简单功能实现

Vue 简单功能实现示例 以下是一个基于 Vue 3 的简单计数器功能实现,包含模板、脚本和样式部分: <template> <div class="counter">…

vue 实现简单登录

vue 实现简单登录

实现 Vue 简单登录功能 创建登录组件 在 Vue 项目中创建一个登录组件 Login.vue,包含用户名和密码输入框以及登录按钮。 <template> <div clas…

vue框架实现定位

vue框架实现定位

Vue 实现定位的方法 在 Vue 中实现定位功能通常涉及浏览器原生 API 或第三方库的集成。以下是几种常见实现方式: 使用浏览器 Geolocation API 通过 navigator.geo…

vue框架实现网页

vue框架实现网页

Vue框架实现网页的基本步骤 Vue.js是一个渐进式JavaScript框架,用于构建用户界面。以下是使用Vue框架实现网页的核心步骤。 安装Vue.js 通过CDN引入Vue.js是最简单的方式…