PHPackages                             itaotao/swiftphp-core - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Framework](/categories/framework)
4. /
5. itaotao/swiftphp-core

ActiveLibrary[Framework](/categories/framework)

itaotao/swiftphp-core
=====================

SwiftPHP Framework - ThinkPHP ease of use + Workerman high performance

v1.1.0(3mo ago)07↓92.3%MITPHPPHP &gt;=7.4

Since Apr 3Pushed 3mo agoCompare

[ Source](https://github.com/itaotao/swiftphp-core)[ Packagist](https://packagist.org/packages/itaotao/swiftphp-core)[ RSS](/packages/itaotao-swiftphp-core/feed)WikiDiscussions main Synced today

READMEChangelog (1)Dependencies (6)Versions (6)Used By (0)

SwiftPHP框架（融合ThinkPHP易用性+Webman高性能）
===================================

[](#swiftphp框架融合thinkphp易用性webman高性能)

核心目标：SwiftPHP 框架以「低学习成本、高开发效率」为易用性核心（对齐ThinkPHP），以「常驻内存、事件驱动、低损耗」为性能核心（对齐Webman），同时兼顾PHP开发者传统使用习惯，避免过度封装导致的学习成本，也避免极简设计导致的开发效率下降，最终实现“上手即会、运行即快”的目标。

核心原则：

1. 易用性优先：沿用ThinkPHP经典目录结构、API风格、辅助函数，降低开发者迁移成本；
2. 性能不妥协：基于Workerman（Webman底层）实现常驻内存、事件驱动，摒弃PHP-FPM依赖；
3. 轻量可扩展：核心内核极简，冗余功能可按需加载，兼顾性能与灵活性；
4. 原生兼容：支持Composer生态，兼容PHP原生语法，无需学习新的开发范式。

一、架构设计（核心：融合两者优势，规避短板）
======================

[](#一架构设计核心融合两者优势规避短板)

1.1 整体架构选型
----------

[](#11-整体架构选型)

核心底层：基于Workerman（Webman同款底层），实现常驻内存、事件驱动、多进程模型，替代PHP-FPM，从根源解决传统框架重复初始化的性能损耗； 上层封装：参考ThinkPHP的MVC架构、核心API、目录结构，降低开发者上手成本，避免Webman“过于极简”导致的开发繁琐问题； 运行模式：支持两种启动方式（满足不同场景）——

- 常驻模式（默认）：用于生产环境，多进程+事件驱动，常驻内存，高性能；
- 调试模式（开发环境）：单次请求加载，自动重载代码，无需重启服务，对齐ThinkPHP开发体验。

1.2 目录结构设计（沿用ThinkPHP习惯，适配Webman常驻特性）
-------------------------------------

[](#12-目录结构设计沿用thinkphp习惯适配webman常驻特性)

采用ThinkPHP经典目录结构，减少开发者适应成本，同时新增常驻相关目录，适配性能需求：

```
SwiftPHP/
├── app/                  # 应用目录（同ThinkPHP）
│   ├── controller/       # 控制器（支持ThinkPHP风格注解路由）
│   ├── model/            # 模型（简化ORM，兼容原生SQL）
│   ├── view/             # 视图（支持blade/think-template）
│   ├── middleware/       # 中间件（同ThinkPHP，支持全局/局部）
│   ├── config/           # 应用配置（同ThinkPHP，支持环境变量）
│   └── common.php        # 应用公共函数
├── config/               # 框架全局配置（区分应用配置，同ThinkPHP）
│   ├── app.php           # 应用基础配置
│   ├── server.php        # 常驻服务配置（新增，适配Workerman）
│   ├── database.php      # 数据库配置
│   └── route.php         # 路由配置（支持注解+配置两种方式）
├── core/                 # 框架核心（极简设计，参考Webman）
│   ├── Server/           # 常驻服务核心（基于Workerman封装）
│   ├── Routing/          # 路由解析（融合ThinkPHP注解+Webman高效解析）
│   ├── Container/        # 容器（轻量版，参考ThinkPHP，无冗余）
│   ├── Request/          # 请求处理（兼容ThinkPHP请求对象，优化I/O）
│   └── Response/         # 响应处理（极简封装，减少损耗）
├── extend/               # 扩展目录（同ThinkPHP，支持自定义扩展）
├── public/               # 入口目录（开发环境入口，生产环境无需）
│   └── index.php         # 调试模式入口（单次请求）
├── runtime/              # 运行时目录（缓存、日志，同ThinkPHP）
├── vendor/               # Composer依赖（兼容Webman/ThinkPHP生态）
├── start.php             # 常驻服务启动入口（新增，生产环境启动）
└── composer.json         # 依赖配置（兼容Composer）

```

说明：目录结构核心是“ThinkPHP用户无感知”，同时通过start.php、core/Server等目录，实现Webman的常驻特性，避免开发者额外学习新的目录规范。

1.3 核心运行流程（兼顾易用性与性能）
--------------------

[](#13-核心运行流程兼顾易用性与性能)

#### 生产环境（常驻模式）：

[](#生产环境常驻模式)

1. 启动服务：执行php start.php start，框架初始化（加载配置、路由、类文件），常驻内存；
2. 接收请求：Workerman监听端口，接收HTTP请求（无Nginx→FPM转发损耗）；
3. 路由解析：融合ThinkPHP注解路由（如@Route("/index")）和Webman高效解析逻辑，快速匹配控制器；
4. 请求处理：调用中间件、控制器方法，复用内存中的配置、数据库连接，无重复初始化；
5. 响应返回：极简响应封装，直接返回结果，无需销毁进程/连接；
6. 循环处理：单进程持续监听请求，I/O等待时自动切换至其他请求（事件驱动）。

#### 开发环境（调试模式）：

[](#开发环境调试模式)

1. 启动入口：访问public/index.php，单次请求加载框架（无需常驻）；
2. 自动重载：修改代码后，无需重启服务，刷新页面即可生效（对齐ThinkPHP开发体验）；
3. 流程同上，仅新增“请求结束后销毁资源”步骤，方便调试。

二、核心模块开发（分模块实现，兼顾易用与性能）
=======================

[](#二核心模块开发分模块实现兼顾易用与性能)

2.1 常驻服务核心模块（复用Webman底层，简化封装）
-----------------------------

[](#21-常驻服务核心模块复用webman底层简化封装)

核心目标：基于Workerman封装，隐藏底层复杂度，让开发者像启动ThinkPHP一样简单启动常驻服务。

#### 具体实现：

[](#具体实现)

1. 封装Server类（core/Server/SwiftServer.php）：继承Workerman的Worker类，简化配置，默认集成HTTP服务、多进程配置；

- 内置默认配置（可通过config/server.php覆盖）：进程数=CPU核心数、监听端口=8787、超时时间=60s；
- 提供简洁API：start()、stop()、reload()，对应php start.php start/stop/reload，与Webman命令一致，但无需开发者了解Workerman细节。

2. 启动入口（start.php）：极简封装，开发者无需编写复杂的启动逻辑，直接执行即可：

```
