PHP轻量级高性能HTTP服务框架 - webman

2024-09-07 07:04

本文主要是介绍PHP轻量级高性能HTTP服务框架 - webman,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

摘要

webman 是一款基于 workerman 开发的高性能 HTTP 服务框架。webman 用于替代传统的 php-fpm 架构,提供超高性能可扩展的 HTTP 服务。你可以用 webman 开发网站,也可以开发 HTTP 接口或者微服务。

除此之外,webman 还支持自定义进程,可以做 workerman 能做的任何事情,例如 websocket 服务、物联网、游戏、TCP 服务、UDP 服务、unix socket 服务等等。

官网&文档:https://www.workerman.net/doc/webman/README.html

安装

PHP >= 7.2
Composer >= 2.0

composer create-project workerman/webman

运行

Windows 系统为例:

cd webman
php windows.php

在这里插入图片描述

运行后,在你的本地服务器 8787 端口就可以访问。

http://localhost:8787

在这里插入图片描述

代码结构

其结构仍然是 MVC 框架结构。

在这里插入图片描述

一个简单的示例

通过一个简单的 控制器+模型+数据库配置 来实现一个数据查询示例。

UserController.php

用户控制器:app\controller\UserController.php

<?php
namespace app\controller;use support\Request;
use app\model\User;class UserController
{public function getUser(Request $request){$default_uid = 29;$uid = $request->get('uid', $default_uid);$name = User::getUsernameByUid($uid); // 调用模型中的方法return json(['code' => 0, 'msg' => 'ok', 'name' => $name]);}
}

User.php

用户查询模型:app\model\User.php

<?phpnamespace app\model;use support\Db;class User
{public static function getUsernameByUid($uid){return Db::table('users')->where('uid', $uid)->value('username');}
}

数据库配置

webman 数据库默认采用的是 illuminate/database,也就是 laravel 的数据库,用法与 laravel 相同。先安装一下数据库:

composer require -W illuminate/database illuminate/pagination illuminate/events symfony/var-dumper

打开 config/database.php 配置数据库。

return [// 默认数据库'default' => 'mysql',// 各种数据库配置'connections' => ['mysql' => ['driver'      => 'mysql','host'        => '127.0.0.1','port'        => 3306,'database'    => 'test','username'    => 'root','password'    => '','unix_socket' => '','charset'     => 'utf8','collation'   => 'utf8_unicode_ci','prefix'      => '','strict'      => true,'engine'      => null,'options' => [\PDO::ATTR_TIMEOUT => 3]],],
];

运行

在浏览器访问

http://localhost:8787/user/getUser

即可实现一个简单的数据库查询。

这篇关于PHP轻量级高性能HTTP服务框架 - webman的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1144393

相关文章

Python实现批量CSV转Excel的高性能处理方案

《Python实现批量CSV转Excel的高性能处理方案》在日常办公中,我们经常需要将CSV格式的数据转换为Excel文件,本文将介绍一个基于Python的高性能解决方案,感兴趣的小伙伴可以跟随小编一... 目录一、场景需求二、技术方案三、核心代码四、批量处理方案五、性能优化六、使用示例完整代码七、小结一、

PHP应用中处理限流和API节流的最佳实践

《PHP应用中处理限流和API节流的最佳实践》限流和API节流对于确保Web应用程序的可靠性、安全性和可扩展性至关重要,本文将详细介绍PHP应用中处理限流和API节流的最佳实践,下面就来和小编一起学习... 目录限流的重要性在 php 中实施限流的最佳实践使用集中式存储进行状态管理(如 Redis)采用滑动

HTTP 与 SpringBoot 参数提交与接收协议方式

《HTTP与SpringBoot参数提交与接收协议方式》HTTP参数提交方式包括URL查询、表单、JSON/XML、路径变量、头部、Cookie、GraphQL、WebSocket和SSE,依据... 目录HTTP 协议支持多种参数提交方式,主要取决于请求方法(Method)和内容类型(Content-Ty

GSON框架下将百度天气JSON数据转JavaBean

《GSON框架下将百度天气JSON数据转JavaBean》这篇文章主要为大家详细介绍了如何在GSON框架下实现将百度天气JSON数据转JavaBean,文中的示例代码讲解详细,感兴趣的小伙伴可以了解下... 目录前言一、百度天气jsON1、请求参数2、返回参数3、属性映射二、GSON属性映射实战1、类对象映

sysmain服务可以禁用吗? 电脑sysmain服务关闭后的影响与操作指南

《sysmain服务可以禁用吗?电脑sysmain服务关闭后的影响与操作指南》在Windows系统中,SysMain服务(原名Superfetch)作为一个旨在提升系统性能的关键组件,一直备受用户关... 在使用 Windows 系统时,有时候真有点像在「开盲盒」。全新安装系统后的「默认设置」,往往并不尽编

C# LiteDB处理时间序列数据的高性能解决方案

《C#LiteDB处理时间序列数据的高性能解决方案》LiteDB作为.NET生态下的轻量级嵌入式NoSQL数据库,一直是时间序列处理的优选方案,本文将为大家大家简单介绍一下LiteDB处理时间序列数... 目录为什么选择LiteDB处理时间序列数据第一章:LiteDB时间序列数据模型设计1.1 核心设计原则

Python 基于http.server模块实现简单http服务的代码举例

《Python基于http.server模块实现简单http服务的代码举例》Pythonhttp.server模块通过继承BaseHTTPRequestHandler处理HTTP请求,使用Threa... 目录测试环境代码实现相关介绍模块简介类及相关函数简介参考链接测试环境win11专业版python

使用Python的requests库来发送HTTP请求的操作指南

《使用Python的requests库来发送HTTP请求的操作指南》使用Python的requests库发送HTTP请求是非常简单和直观的,requests库提供了丰富的API,可以发送各种类型的HT... 目录前言1. 安装 requests 库2. 发送 GET 请求3. 发送 POST 请求4. 发送

Nginx中配置使用非默认80端口进行服务的完整指南

《Nginx中配置使用非默认80端口进行服务的完整指南》在实际生产环境中,我们经常需要将Nginx配置在其他端口上运行,本文将详细介绍如何在Nginx中配置使用非默认端口进行服务,希望对大家有所帮助... 目录一、为什么需要使用非默认端口二、配置Nginx使用非默认端口的基本方法2.1 修改listen指令

SysMain服务可以关吗? 解决SysMain服务导致的高CPU使用率问题

《SysMain服务可以关吗?解决SysMain服务导致的高CPU使用率问题》SysMain服务是超级预读取,该服务会记录您打开应用程序的模式,并预先将它们加载到内存中以节省时间,但它可能占用大量... 在使用电脑的过程中,CPU使用率居高不下是许多用户都遇到过的问题,其中名为SysMain的服务往往是罪魁