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);
部署建议
生产环境
- 使用 PHP 8.1+:获得最佳性能
- 开启 OPcache:提升代码执行效率
- 使用 Linux:生产环境推荐 Linux,支持进程管理
- 配置 Supervisor:保证服务持续运行
- 使用 Nginx 反代:处理静态文件和 SSL
性能优化
# 启用事件扩展提升性能
pecl install event
# 以守护进程方式运行
php start.php start -d
# 查看运行状态
php start.php status
总结
Webman 是构建高性能 PHP 应用的优秀选择,特别适合 API 服务、实时应用和高并发场景。配合 Eloquent ORM 和 Twig 模板引擎,可以高效地开发出功能完整的 Web 应用。
推荐阅读:Workerman 官方文档 获取更详细的信息。
评论