PHP框架新曙光 告别伪Java 回归PHP的松弛感

0 阅读3分钟

[开源] 发现了一个轻巧强大易用的 PHP 框架,23 个内置组件覆盖 Laravel 100% 常用功能

零 Composer 依赖、冷启动 1MB、空请求 <1ms、3 秒看懂代码


先说结论

指标H2PHPLaravel
功能覆盖27/27 (100%)27/27
框架代码量~3,500 行~400,000 行
Composer 依赖0~70 个
冷启动内存~1 MB~15 MB
空请求响应< 1 ms~10 ms
学习曲线3 秒看懂需要系统学习

不是说 Laravel 不好,而是很多项目根本不需要那么重的架构


为什么做这个?

PHP 之所以是 PHP,是因为它简单、直接、改完刷新就生效

但 Laravel 把 PHP 写成了"伪 Java"——服务容器、依赖注入、门面模式、服务提供者……一个空请求加载几百个文件,打开一个控制器要跳 5-6 层才找到逻辑。

想要严谨架构?那应该去用 Java / Go / Rust。用 PHP 模仿 Java,等于拿了 PHP 的慢,丢了 PHP 的轻。

H2PHP 的选择:拥抱 PHP 的本质。


核心设计:目录即路由

不需要定义路由表。URL 直接映射到文件系统:

/user/login       → app/user/login.php  → main::index()
/post/index/view/5  → app/post/index.php  → main::view(5)
/admin/dashboard  → app/admin/dashboard.php → main::index()

新建一个页面?创建一个文件就行。不需要在任何地方注册。


23 个内置组件,全部零依赖

类别组件
核心Core · Router · Bootstrap · Request · Response
数据DB(MySQL/PostgreSQL/SQLite)· Redis · Cache(4驱动)
安全Auth(bcrypt+JWT)· Encryption(AES-256)· Cookie(加密+SameSite)· Validator
工具Str(18方法)· Http 客户端 · Env(.env)· Pagination · RateLimiter
高级Event · Scheduler · Queue(DB/Redis)· Mail(SMTP)· Logger
文件Upload · StaticFile

每个组件一个文件,平均 100-200 行,打开就能看明白。


看看代码长什么样

控制器

<?php
class main extends \Lib\Core
{
    public function index(): void
    {
        $posts = $this->db->table('posts')
            ->where('status=?', ['published'])
            ->order('id DESC')
            ->limit(10)
            ->fetchAll();

        $this->set('posts', $posts);
        $this->render('post/list');
    }

    public function create(): void
    {
        $this->csrfVerify();
        $this->validate([
            'title' => 'required|min:2',
            'body'  => 'required',
        ]);

        $id = $this->db->table('posts')->timestamps()->insert([
            'title' => $this->request->post('title'),
            'body'  => $this->request->post('body'),
        ]);

        $this->response->status(201)->json(['id' => $id]);
    }
}

视图(原生 PHP,不发明新语法)

<?php $this->layout('main'); ?>

<h1><?= htmlspecialchars($post['title']) ?></h1>
<p><?= nl2br($post['body']) ?></p>

<?php foreach ($comments as $c): ?>
    <div><?= $c['content'] ?></div>
<?php endforeach; ?>

配置(支持 .env 环境变量)

// config/config.php
return [
    'db' => [
        'dsn'  => 'mysql:host=' . Env::get('DB_HOST') . ';dbname=' . Env::get('DB_NAME'),
        'user' => Env::get('DB_USER'),
    ],
    'app_key'   => Env::get('APP_KEY'),
    'middleware' => ['Cors'],
];

完整功能对比(不是只对比 Laravel)

功能H2PHPLaravelThinkPHPCodeIgniterSlim
MVC 路由
中间件
ORM / 链式查询
ORM 关联
数据库迁移
软删除 / 时间戳
模板+布局
表单验证
CSRF
队列+调度
事件系统
缓存(多驱动)
查询缓存
邮件
CLI 工具
单元测试
Auth+JWT
加密/限流

CLI 工具

php h2 make:controller user/profile   # 创建控制器
php h2 make:model User                # 创建模型
php h2 migrate                        # 数据库迁移
php h2 queue:work                     # 启动队列
php h2 schedule:run                   # 定时任务
php h2 serve                          # 开发服务器
php h2 key:generate                   # 生成密钥
php h2 test                           # 运行测试

同时兼容 Composer

虽然自身零依赖,但完全兼容 Composer 生态:

composer require nesbot/carbon            # 日期
composer require phpmailer/phpmailer      # 邮件
composer require intervention/image       # 图片
composer require illuminate/support       # Laravel Collection

安装后直接 use,零配置。


有实际项目吗?

有。H2CMS 是用 H2PHP 构建的完整 CMS 系统,包含:

  • 前台:文章列表、详情、评论、搜索、分页、暗黑模式
  • 后台:仪表盘、文章 CRUD、分类管理、评论审核、用户管理
  • 30 课完整教程,从入门到精通

谁适合用?

中小型 Web 应用 — 后台管理、企业官网、内容管理
API 服务 — 轻量、高性能、毫秒级响应
快速原型 — 5 分钟搭建一个完整项目
教学 — 代码简单,适合学习 PHP 框架原理
PHP 7.x 项目 — 最低 PHP 7.2,不挑环境

❌ 不适合:大型微服务架构(用 Java/Go 更合适)


链接

欢迎 Star ⭐ 和提 Issue!


如果你也觉得 PHP 应该保持简单,欢迎试试。