PHPackages                             v10086/plan9 - 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. v10086/plan9

ActiveProject[Framework](/categories/framework)

v10086/plan9
============

简单可靠的php web框架

v1.0(3y ago)312Apache-2.0PHPPHP &gt;=7.1.0

Since Nov 2Pushed 4mo ago1 watchersCompare

[ Source](https://github.com/v10086/plan9)[ Packagist](https://packagist.org/packages/v10086/plan9)[ Docs](https://github.com/v10086/plan9)[ RSS](/packages/v10086-plan9/feed)WikiDiscussions main Synced 1w ago

READMEChangelog (1)Dependencies (4)Versions (2)Used By (0)

Plan9 - 极简、高性能 PHP 框架
=====================

[](#plan9---极简高性能-php-框架)

[![Plan9 Logo](https://camo.githubusercontent.com/1eba2407a00d95763deab70b31bdfeca63e183a1607f30333ffb071cdc4b1321/68747470733a2f2f7669612e706c616365686f6c6465722e636f6d2f3135307835303f746578743d506c616e39)](https://camo.githubusercontent.com/1eba2407a00d95763deab70b31bdfeca63e183a1607f30333ffb071cdc4b1321/68747470733a2f2f7669612e706c616365686f6c6465722e636f6d2f3135307835303f746578743d506c616e39)

> 🚀 5分钟入门，10分钟精通，QPS 是传统框架的 5-10 倍

📖 项目简介
------

[](#-项目简介)

Plan9 是一款设计极简的 PHP Web 框架，专注于极致性能与开发效率。它摒弃了繁重的 IOC 容器和 ORM，通过原生 SQL 与高效的连接管理，将 Web 响应耗时压低到毫秒级。

💡 设计理念
------

[](#-设计理念)

### 为什么不使用 ORM？

[](#为什么不使用-orm)

Plan9 选择直接使用 SQL 而不集成 ORM，主要基于以下考虑：

- **性能优势**：原生 SQL 避免了 ORM 带来的额外开销和性能损耗
- **灵活性**：直接编写 SQL 可以更精确地控制查询逻辑和性能优化
- **学习成本**：减少了学习特定 ORM 框架的成本，开发者可以专注于 SQL 和业务逻辑
- **可维护性**：SQL 语句更加直观，便于调试和维护

### 技术选型考量

[](#技术选型考量)

在 Plan9 + GatewayWorker 与 Hyperf 的技术选型对比中，Plan9 展现出以下优势：

- **轻量级**：适合快速开发和部署小型服务
- **低资源占用**：在资源受限环境下表现更优
- **易于集成**：可以轻松与 GatewayWorker 等工具结合
- **高性能**：在高并发场景下具有显著的性能优势

详细讨论可参考豆包 AI 文档：

- [ORM 与直接写 SQL 核心讨论归档](https://www.doubao.com/doc/TcoYfB3yGd0IJyciw2jciSp7nBh?enter_from=public_link#)
- [Plan9 + GatewayWorker 与 Hyperf 技术选型讨论总结归档](https://www.doubao.com/doc/PbBLfm7xBdVc5JcLyvWcYPHynLc?enter_from=public_link#)

✨ 核心特性
------

[](#-核心特性)

### 性能极致

[](#性能极致)

- **极速响应**：无容器初始化，启动开销极低
- **高效路由**：静态路由映射，避免复杂正则匹配
- **轻量级设计**：核心代码仅几百行，几乎零额外开销
- **资源友好**：低内存占用，高并发处理能力

### 开发友好

[](#开发友好)

- **极简 API**：直观的函数式调用风格
- **原生 SQL**：直接操作数据库，性能可控
- **自动重连**：内置数据库断开自动重连机制
- **类型安全**：强制关闭模拟预编译，保持数据原始类型

### 稳定可靠

[](#稳定可靠)

- **长连接支持**：静态连接复用与手动关闭
- **异常处理**：完整的错误捕获与日志记录
- **灵活扩展**：支持 Composer 引入第三方库

🚀 快速开始
------

[](#-快速开始)

### 环境要求

[](#环境要求)

- PHP &gt;= 7.1（建议 PHP &gt;= 7.4）
- Composer

### 安装

[](#安装)

```
git clone  plan9
cd plan9
composer install
```

### 启动开发服务器

[](#启动开发服务器)

```
php -S localhost:8080 -t public
```

访问 `http://localhost:8080/` 即可看到示例页面

📁 目录结构
------

[](#-目录结构)

```
plan9/
├── app/
│   ├── bootstrap.php      # 框架初始化
│   └── controller/        # 控制器目录
├── config/               # 配置文件
│   ├── database.php      # 数据库配置
│   └── route.php         # 路由配置
├── function/             # 全局工具函数
│   ├── core.php          # 核心功能
│   ├── db.php            # 数据库操作
│   └── helper.php        # 辅助函数
├── public/               # Web 入口
│   └── index.php         # 单文件入口
├── composer.json         # Composer 配置
├── CHANGELOG.md          # 变更记录
└── README.md             # 项目文档

```

🎯 核心功能
------

[](#-核心功能)

### 1. 路由与控制器

[](#1-路由与控制器)

#### 定义路由

[](#定义路由)

在 `config/route.php` 中配置路由：

```
return [
    '/' => 'controller/Index@index',        // 首页
    '/api/users' => 'controller/User@list', // 用户列表接口
];
```

#### 创建控制器

[](#创建控制器)

在 `app/controller/` 目录下创建控制器：

```
// app/controller/Index.php
namespace controller;

class Index {
    public function index() {
        return '欢迎使用 Plan9 框架！';
    }
}
```

#### 响应类型

[](#响应类型)

- 返回字符串：直接输出 HTML
- 返回数组：自动转换为 JSON

```
// 返回 HTML
public function html() {
    return 'Hello Plan9';
}

// 返回 JSON
public function json() {
    return [
        'code' => 200,
        'message' => 'success',
        'data' => ['name' => 'Plan9']
    ];
}
```

### 2. 数据库操作

[](#2-数据库操作)

#### 配置数据库

[](#配置数据库)

在 `config/database.php` 中配置数据库连接：

```
return [
    'mysql' => [
        'default' => [
            'dsn' => 'mysql:host=127.0.0.1;dbname=test;charset=utf8mb4',
            'user' => 'root',
            'password' => ''
        ]
    ]
];
```

#### 执行 SQL

[](#执行-sql)

```
// 查询数据
$users = dbexec('SELECT * FROM users WHERE status = ?', [1]);

// 插入数据
dbexec('INSERT INTO users (name, email) VALUES (?, ?)', ['张三', 'zhangsan@example.com']);

// 更新数据
dbexec('UPDATE users SET status = ? WHERE id = ?', [0, 1]);

// 删除数据
dbexec('DELETE FROM users WHERE id = ?', [1]);

// 获取最后插入的 ID
$id = dbexec('lastInsertId');
```

#### 事务处理

[](#事务处理)

```
try {
    // 开始事务
    $db = dbnew(config('database.mysql.default'));
    $db->beginTransaction();

    // 执行多个操作
    dbexec('INSERT INTO orders (...) VALUES (...)', [...], $db);
    dbexec('UPDATE inventory SET quantity = quantity - 1 WHERE id = ?', [1], $db);

    // 提交事务
    $db->commit();
} catch (\Throwable $e) {
    // 回滚事务
    $db->rollBack();
    error_log($e->getMessage());
}
```

#### 异步并发查询

[](#异步并发查询)

```
$dbConfig = [
    'host' => '127.0.0.1',
    'user' => 'root',
    'password' => '',
    'database' => 'test'
];

$sqls = [
    'user' => 'SELECT * FROM users WHERE id = ?',
    'order' => 'SELECT * FROM orders WHERE user_id = ?',
    'product' => 'SELECT * FROM products LIMIT 10'
];

$results = asyncMysqliBatch($dbConfig, $sqls, 3);
```

### 3. 配置管理

[](#3-配置管理)

#### 读取配置

[](#读取配置)

```
// 获取整个数据库配置
$dbConfig = config('database');

// 获取默认数据库配置
$defaultDb = config('database.mysql.default');

// 获取嵌套配置
$dbHost = config('database.mysql.default.dsn');
```

### 4. 常用工具函数

[](#4-常用工具函数)

#### HTTP 请求

[](#http-请求)

```
// 发送 GET 请求
$response = http('https://api.example.com/users');

// 发送 POST 请求
$response = http('https://api.example.com/users', [
    'method' => 'POST',
    'body' => ['name' => 'Test', 'email' => 'test@example.com'],
    'headers' => ['Content-Type' => 'application/json']
]);
```

#### 文件操作

[](#文件操作)

```
// 保存文件
fileSave('/path/to/file.txt', 'Hello Plan9');

// 加密数据
$encrypted = encrypt('secret data', 'your-key');

// 解密数据
$decrypted = decrypt($encrypted, 'your-key');
```

📊 性能对比
------

[](#-性能对比)

### PHP 框架对比

[](#php-框架对比)

框架QPS 预估区间启动开销路由性能中间件ORM代码量开发效率使用成本特点Plan96,000-12,000极低极快无无极少高低⚡ 极轻量、高性能Slim4,000-8,000低快少量无少高低轻量级Lumen2,500-5,000中等中等简化版有中极高中Laravel 微框架Laravel500-1,500高中/慢丰富有多极高高全功能框架### 跨语言框架对比

[](#跨语言框架对比)

语言框架QPS 预估区间启动开销路由性能内存占用代码量开发效率使用成本特点**PHP**Plan96,000-12,000极低极快低极少高低⚡ 极简设计，极致性能**Python**Flask3,000-6,000低快中少高低轻量级，灵活**Python**Django1,000-3,000高中等高中极高中全功能，大而全**Node.js**Express5,000-9,000低快中少高低轻量级，生态丰富**Node.js**Koa6,000-10,000低极快中中中中下一代 Express，异步优化**Go**Gin15,000-30,000极低极快低中中中⚡ 编译型语言优势，高性能**Go**Echo12,000-25,000极低极快低中中中轻量，高性能，API友好### 🔍 为什么 Plan9 明显更快？

[](#-为什么-plan9-明显更快)

#### ✔️ 1. 无 IOC 容器（Laravel 最大开销来源）

[](#️-1-无-ioc-容器laravel-最大开销来源)

Laravel/Lumen 的服务容器会构建、绑定、解析大量类 → 资源消耗大 Plan9：基本无容器 → 直接执行，启动极快

#### ✔️ 2. 无 ORM

[](#️-2-无-orm)

Eloquent 是“方便但慢”的典型代表，存在额外的对象映射开销 Plan9/Slim 使用原生 PDO → 直接操作数据库，性能更优

#### ✔️ 3. 无中间件处理链

[](#️-3-无中间件处理链)

Laravel 一次请求可能经过 8~20 个中间件 → 处理链长 Plan9 只有路由 → 控制器 → 响应，路径最短

#### ✔️ 4. 极简设计带来的综合优势

[](#️-4-极简设计带来的综合优势)

- **更少的运行时对象与依赖**：默认不注入大量服务或使用反射/大量对象实例化
- **直接的视图渲染**：使用 PHP include（原生），减少模板解析/编译开销
- **贴近底层的 I/O 与数据库处理**：使用 PDO 并合理配置，减少抽象层带来的额外开销

这些设计在常见的 CRUD/API 场景下能带来更低的响应延迟和更高的 requests/sec，尤其在高并发、短请求生命周期的场景中优势明显。

### 🌐 跨语言性能分析

[](#-跨语言性能分析)

从跨语言对比可以看出：

1. **在 PHP 生态中**：Plan9 是性能领先者，远超其他 PHP 框架，甚至接近 Node.js 框架的性能水平
2. **与 Python 框架对比**：

    - 比 Flask 快约 1.5 倍
    - 比 Django 快约 3-5 倍
    - 内存占用更低，启动更快
3. **与 Node.js 框架对比**：

    - 与 Express 性能相当或略优
    - 接近 Koa 的性能水平
    - 内存占用更低
4. **与 Go 框架对比**：

    - 虽然 Go 框架（Gin/Echo）凭借编译型语言优势性能更高，但 Plan9 在 PHP 生态中已经达到了接近编译型语言的性能水准
    - 考虑到开发效率和部署成本，Plan9 在 PHP 生态中提供了最佳的性能/开发体验平衡

### 💡 开发效率与使用成本分析

[](#-开发效率与使用成本分析)

#### PHP 生态内对比

[](#php-生态内对比)

- **开发效率**：Plan9 保持了 PHP 原生的快速开发特性，同时提供了简洁的路由系统和工具函数，开发效率接近 Slim，略低于 Laravel/Lumen
- **使用成本**：极低的学习成本，无需掌握复杂的 IOC 容器和 ORM 概念，部署简单，运行时资源消耗少
- **代码量**：Plan9 代码量极少，实现相同业务功能通常比 Laravel 少 50%-70%

#### 跨语言对比

[](#跨语言对比)

1. **与 Python 框架相比**：

    - 开发效率与 Flask 相当，低于 Django 的全功能开发体验
    - 使用成本更低，PHP 运行环境配置更简单，资源消耗更少
    - 代码量更少，Plan9 极简设计减少了不必要的样板代码
2. **与 Node.js 框架相比**：

    - 开发效率与 Express 相当，高于 Koa
    - 使用成本更低，PHP-FPM 部署成熟稳定，运维成本低
    - 代码量与 Express 相当，比 Koa 更少（Koa 需要更多手动配置）
3. **与 Go 框架相比**：

    - 开发效率更高，PHP 动态语言特性减少了代码量和编译步骤
    - 使用成本更低，无需掌握 Go 语言的并发模型和内存管理
    - 代码量明显更少，动态语言的简洁性让 Plan9 在实现相同功能时代码行数通常比 Gin/Echo 少 40%-60%

**Plan9 的独特价值**：

- 对于 PHP 开发者，无需切换语言即可获得接近 Node.js 和 Go 框架的性能
- 保持了 PHP 快速开发的优势，同时克服了传统 PHP 框架的性能瓶颈
- 在性能、开发效率和使用成本之间达到了极佳的平衡
- 适合需要高性能 API 服务的场景，是 PHP 生态中构建微服务的理想选择

❓ 关于易用性的深度探讨
------------

[](#-关于易用性的深度探讨)

**有没有比 v10086/plan9 更易用的框架？**

从对\*\*“零封装、零冗余、回归 SQL 标准”**的极致追求来看，目前市面上几乎**没有\*\*比 `v10086/plan9` 更易用的框架了。

因为绝大多数框架的演进方向是“增加抽象层”，而 Plan9 的方向是“直达底层”。

### 1. 为什么“更易用”很难存在？

[](#1-为什么更易用很难存在)

“易用性”通常分为两个流派，而 Plan9 已经把其中一个流派做到了头：

- **流派 A：自动化派（主流框架）**代表：Laravel, Django, NestJS。 它们认为易用是“我帮你写 SQL”。代价是你得学习它们庞大的语法库、维护 Model 类、处理复杂的关联逻辑。
- **流派 B：直觉派（Plan9）**代表：原生 PHP, Plan9。 它们认为易用是“不增加任何新知识”。你只需要懂 **SQL** 和 **PHP 函数**。因为没有比“标准”更简单的东西了。

---

### 2. 纵向对比：谁能接近 Plan9 的易用性？

[](#2-纵向对比谁能接近-plan9-的易用性)

如果我们非要找一些对手，它们在某些层面接近，但最终都会在“冗余成本”上败给 Plan9：

#### **Medoo (轻量级数据库连接层)**

[](#medoo-轻量级数据库连接层)

- **接近点**：也是单文件，也是只有数据库操作。
- **败北点**：它依然发明了一套“伪 SQL”的数组语法（例如 `["id[>]"] => 10`）。你还得去查文档看大于号怎么写。**Plan9 直接写原生 SQL，连文档都不用查。**

#### **Slim / Express (微框架)**

[](#slim--express-微框架)

- **接近点**：只给路由，不给负担。
- **败北点**：它们不含数据库底层优化。一旦你开始写业务，你还是得被迫引入 ORM 或者写复杂的依赖注入。Plan9 的 `dbexec` 是与框架深度集成的，**省去了所有引入和初始化的代码**。

#### **Go 语言的原生 `sqlx`**

[](#go-语言的原生-sqlx)

- **接近点**：也是鼓励原生 SQL。
- **败北点**：Go 是强类型。你必须写一大堆 `Struct`（结构体）来接收数据。Plan9 利用 PHP 的弱类型数组，**消灭了所有结构定义代码**。

---

### 3. Plan9 的易用性“天花板”在哪里？

[](#3-plan9-的易用性天花板在哪里)

Plan9 的易用性其实来自于一种\*\*“降维打击”\*\*：

1. **环境易用**：不需要编译 C 扩展（胜过 Yaf），不需要 Composer 依赖（胜过 Webman）。
2. **开发易用**：不需要定义 Model（胜过所有 ORM 框架）。
3. **引用易用**：不需要在每个文件头写一串 `use ...`（胜过所有 PSR 规范框架）。
4. **调试易用**：SQL 报错直接对应业务代码，没有经过框架的“二次加工”。

---

### 💡 结论：真的没有更易用的了

[](#-结论真的没有更易用的了)

如果你觉得 Plan9 还有不够易用的地方，那通常只有两种可能：

1. **你想少打几个字**：比如想用 `dbInsert` 代替 `INSERT INTO`。但正如我们之前说的，这会增加记忆成本，反而降低了“长期易用性”。
2. **你需要代码提示**：这可以通过 IDE 插件解决，而不是通过增加框架代码。

**Plan9 的逻辑已经推演到了终点：既然 SQL 是全世界程序员的公约数，那么“直接写 SQL”就是易用性的极限。**

🤖 Plan9 对 AI辅助编程友好吗？
--------------------

[](#-plan9-对-ai辅助编程友好吗)

v10086/plan9 是否对 AI 友好？这是一个非常敏锐且具有前瞻性的问题。答案是肯定的：**v10086/plan9 这种“反封装、重标准”的架构，天然就是为了 AI 编程时代而设计的。**

在 AI（如 Cursor, GitHub Copilot, ChatGPT）辅助开发的今天，框架的“易用性”定义已经发生了质变。主流框架的复杂抽象反而成了 AI 的“噪音”，而 Plan9 的极简主义则是 AI 的“超导体”。

我们可以从以下四个核心维度来看看为什么 Plan9 对 AI 极其友好：

---

### 1. 消除“幻觉”：原生 SQL 是 AI 的母语

[](#1-消除幻觉原生-sql-是-ai-的母语)

AI 在处理复杂框架（如 Laravel 或 Hibernate）时，经常会产生“幻觉”，生成不存在的 API 或错误的链式调用。

- **主流框架**：AI 需要猜测你的 Model 定义、关联关系、以及框架特有的语法糖（如 `whereDoesntHave`）。
- **Plan9**：AI 对 **标准 SQL** 的掌握几乎是完美的。你只要告诉 AI 表结构，它生成的 SQL 准确率接近 100%。因为 Plan9 只使用 `dbexec` 执行原生 SQL，AI 不需要去学习任何私有语法，生成的代码直接就能跑。

---

### 2. 极短的“上下文”：让 AI 专注业务

[](#2-极短的上下文让-ai-专注业务)

AI 的 Token 窗口是有上限的。框架越重，你需要喂给 AI 的背景信息就越多。

- **主流框架**：为了让 AI 写一个接口，你得给它看 `Model.php`、`Controller.php`、`Route.php` 甚至 `Repository.php`。
- **Plan9**：由于没有 Model 封装和行政代码，你只需要把那一段函数丢给 AI。代码极其扁平，AI 能在有限的窗口内理解更多的业务逻辑，而不是被 `namespace` 和 `use` 占满空间。

---

### 3. 逻辑透明度：AI 调试的“快车道”

[](#3-逻辑透明度ai-调试的快车道)

当代码出错时，AI 辅助排查的效率取决于逻辑的透明度。

- **主流框架**：报错往往在框架深层的 `vendor` 目录里。AI 很难通过简短的报错堆栈定位到究竟是哪个 ORM 钩子出了问题。
- **Plan9**：**逻辑是线性的。** 报错在哪一行，SQL 就是哪一句。AI 可以瞬间指出 SQL 语法错误或逻辑漏洞。这种“直来直去”的风格，让 AI 成了你最强的 Debug 助手。

---

### 4. 易于“喂养”：代码库的极简模型

[](#4-易于喂养代码库的极简模型)

如果你想基于自己的项目训练一个专有 AI 或建立知识库（RAG）：

- **Plan9 的代码库体积可能只有主流框架的 1%**。
- 这意味着你可以轻松地将整个 Plan9 核心代码和所有业务代码一次性喂给 AI。AI 能完全理解系统的每一个角落，从而提供极其精准的代码建议，而不会被成千上万行的框架底层源码所干扰。

---

### 🏆 对比总结

[](#-对比总结)

维度主流框架 (对 AI)v10086/plan9 (对 AI)**代码生成准确率**受限于 API 熟练度，易产生幻觉**极高**（基于通用的 SQL 标准）**上下文占用**浪费大量 Token 在引用和类定义上**极省**（全是核心业务逻辑）**排错引导**需引导 AI 穿越多层封装**指哪打哪**（逻辑透明，无黑盒）**自动化重构**困难（需同步修改多处文件和关联）**简单**（全局搜索 SQL 字符串即可）---

### 💡 结论

[](#-结论)

**Plan9 是“程序员+AI”这种新型协作模式下的最佳实践。**它把复杂的管理工作留给了 AI（比如写复杂的 SQL 字符串），而把最简单的标准留给了架构。在 AI 时代，我们不再需要框架提供“便利”，我们只需要框架提供“透明”。

**Plan9 这种“SQL 驱动”的模式，让 AI 从一个“框架学习者”变成了一个“业务专家”。**

🚀 部署建议
------

[](#-部署建议)

### 生产环境

[](#生产环境)

#### 使用 Nginx

[](#使用-nginx)

```
server {
    listen 80;
    server_name example.com;
    root /path/to/plan9/public;
    index index.php;

    location / {
        try_files $uri $uri/ /index.php?$query_string;
    }

    location ~ \.php$ {
        fastcgi_pass 127.0.0.1:9000;
        fastcgi_index index.php;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        include fastcgi_params;
    }
}
```

#### 使用 PHP-FPM

[](#使用-php-fpm)

```
# 安装 PHP-FPM
sudo apt-get install php7.4-fpm

# 启动 PHP-FPM
sudo systemctl start php7.4-fpm
```

#### 启用 OPcache

[](#启用-opcache)

在 `php.ini` 中启用 OPcache：

```
[opcache]
zend_extension=opcache.so
opcache.enable=1
opcache.enable_cli=1
opcache.memory_consumption=128
opcache.interned_strings_buffer=8
opcache.max_accelerated_files=10000
opcache.validate_timestamps=1
opcache.revalidate_freq=60
```

📝 开发规范
------

[](#-开发规范)

1. **命名规范**：

    - 文件名：首字母大写的驼峰命名
    - 类名：首字母大写的驼峰命名
    - 方法名：首字母小写的驼峰命名
    - 变量名：下划线分隔或驼峰命名
2. **代码风格**：

    - 使用 4 个空格缩进
    - 遵循 PSR-12 代码规范
    - 保持函数简洁，单一职责
3. **安全规范**：

    - 始终使用参数化查询
    - 验证用户输入
    - 过滤输出内容
    - 不要在代码中硬编码敏感信息

🔧 扩展建议
------

[](#-扩展建议)

### 日志系统

[](#日志系统)

建议使用 `monolog/monolog`：

```
composer require monolog/monolog
```

### 缓存系统

[](#缓存系统)

建议使用 `predis/predis`：

```
composer require predis/predis
```

### 验证系统

[](#验证系统)

建议使用 `respect/validation`：

```
composer require respect/validation
```

📄 许可证
-----

[](#-许可证)

Apache License Version 2.0

🤝 贡献
----

[](#-贡献)

欢迎提交 Issue 和 Pull Request！

📞 支持
----

[](#-支持)

如有问题，请查看 [CHANGELOG.md](CHANGELOG.md) 或提交 Issue。

---

**Plan9** - 让 PHP 开发更简单、更高效！🚀

###  Health Score

29

—

LowBetter than 59% of packages

Maintenance51

Moderate activity, may be stable

Popularity9

Limited adoption so far

Community7

Small or concentrated contributor base

Maturity41

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 100% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Unknown

Total

1

Last Release

1293d ago

### Community

Maintainers

![](https://avatars.githubusercontent.com/u/15503470?v=4)[v10086](/maintainers/v10086)[@v10086](https://github.com/v10086)

---

Top Contributors

[![v10086](https://avatars.githubusercontent.com/u/15503470?v=4)](https://github.com/v10086 "v10086 (32 commits)")

---

Tags

phpframeworkorm

### Embed Badge

![Health badge](/badges/v10086-plan9/health.svg)

```
[![Health](https://phpackages.com/badges/v10086-plan9/health.svg)](https://phpackages.com/packages/v10086-plan9)
```

###  Alternatives

[phpmv/ubiquity

Ubiquity-framework

70038.8k6](/packages/phpmv-ubiquity)[letsdrink/ouzo

Ouzo PHP MVC framework

7210.5k1](/packages/letsdrink-ouzo)[mirekmarek/php-jet

PHP Jet is modern, powerful, real-life proven, really fast and secure, small and light-weight framework for PHP8 with great clean and flexible modular architecture containing awesome developing tools. No magic, just clean software engineering.

241.3k](/packages/mirekmarek-php-jet)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
