Webman 框架入门指南

Webman 是一款基于 Workerman 的高性能 PHP HTTP 框架,本文介绍其核心概念与快速上手方法。

Webman 框架入门指南

Webman 是一款基于 Workerman 的高性能 PHP HTTP 框架,专为构建高性能 Web 应用而设计。

为什么选择 Webman

极致性能

Webman 采用常驻内存架构,避免了传统 PHP-FPM 每次请求都重新初始化的开销:

// 传统 PHP-FPM:每个请求都要重新加载框架
// Webman:框架只在启动时加载一次,后续请求直接复用

// 简单的路由示例
use Webman\Route;

Route::get('/hello', function () {
    return 'Hello Webman!';
});

在基准测试中,Webman 的 QPS 可以达到传统框架的 10-100 倍。

核心特性

  • 常驻内存:无需每次请求重新初始化,性能极高
  • 协程支持:基于 Workerman 协程,可处理高并发
  • 标准 PSR:兼容 PSR-7/PSR-11/PSR-15 等标准
  • 插件系统:通过 Composer 即可安装功能插件
  • 跨平台:支持 Linux/Windows/macOS

快速上手

安装

composer create-project workerman/webman blog
cd blog
php start.php start

路由定义

Webman 支持多种路由定义方式:

// 闭包路由
Route::get('/api/users', function (Request $request) {
    return json(['users' => User::all()]);
});

// 控制器路由
Route::get('/article/{id}', [ArticleController::class, 'show']);

// 路由分组
Route::group('/blog', function () {
    Route::get('/list', [BlogController::class, 'index']);
    Route::get('/post/{slug}', [BlogController::class, 'detail']);
});

控制器

namespace app\controller;

use support\Request;

class ArticleController
{
    public function show(Request $request, $id)
    {
        $article = Article::find($id);
        return view('article/detail', ['article' => $article]);
    }
}

中间件

namespace app\middleware;

use Webman\MiddlewareInterface;
use Webman\Http\Response;

class AuthCheck implements MiddlewareInterface
{
    public function process(Request $request, callable $handler): Response
    {
        if (!session('user_id')) {
            return redirect('/login');
        }
        return $handler($request);
    }
}

数据库操作

Webman 配合 illuminate/database (Eloquent ORM) 提供了强大的数据库操作能力:

use support\Db;
use support\Model;

// 使用查询构建器
$users = Db::table('users')->where('status', 1)->get();

// 使用 Eloquent 模型
class Article extends Model
{
    protected $table = 'articles';
    
    public function tags()
    {
        return $this->belongsToMany(Tag::class, 'article_tag');
    }
}

$articles = Article::with('tags')
    ->where('status', 1)
    ->orderBy('published_at', 'desc')
    ->paginate(10);

部署建议

生产环境

  1. 使用 PHP 8.1+:获得最佳性能
  2. 开启 OPcache:提升代码执行效率
  3. 使用 Linux:生产环境推荐 Linux,支持进程管理
  4. 配置 Supervisor:保证服务持续运行
  5. 使用 Nginx 反代:处理静态文件和 SSL

性能优化

# 启用事件扩展提升性能
pecl install event

# 以守护进程方式运行
php start.php start -d

# 查看运行状态
php start.php status

总结

Webman 是构建高性能 PHP 应用的优秀选择,特别适合 API 服务、实时应用和高并发场景。配合 Eloquent ORM 和 Twig 模板引擎,可以高效地开发出功能完整的 Web 应用。

推荐阅读:Workerman 官方文档 获取更详细的信息。

评论

加载中...