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

相关文章

C++ HTTP框架推荐(特点及优势)

《C++HTTP框架推荐(特点及优势)》:本文主要介绍C++HTTP框架推荐的相关资料,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧... 目录1. Crow2. Drogon3. Pistache4. cpp-httplib5. Beast (Boos

SpringCloud整合MQ实现消息总线服务方式

《SpringCloud整合MQ实现消息总线服务方式》:本文主要介绍SpringCloud整合MQ实现消息总线服务方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐... 目录一、背景介绍二、方案实践三、升级版总结一、背景介绍每当修改配置文件内容,如果需要客户端也同步更新,

linux服务之NIS账户管理服务方式

《linux服务之NIS账户管理服务方式》:本文主要介绍linux服务之NIS账户管理服务方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、所需要的软件二、服务器配置1、安装 NIS 服务2、设定 NIS 的域名 (NIS domain name)3、修改主

SpringBoot基础框架详解

《SpringBoot基础框架详解》SpringBoot开发目的是为了简化Spring应用的创建、运行、调试和部署等,使用SpringBoot可以不用或者只需要很少的Spring配置就可以让企业项目快... 目录SpringBoot基础 – 框架介绍1.SpringBoot介绍1.1 概述1.2 核心功能2

Nginx使用Keepalived部署web集群(高可用高性能负载均衡)实战案例

《Nginx使用Keepalived部署web集群(高可用高性能负载均衡)实战案例》本文介绍Nginx+Keepalived实现Web集群高可用负载均衡的部署与测试,涵盖架构设计、环境配置、健康检查、... 目录前言一、架构设计二、环境准备三、案例部署配置 前端 Keepalived配置 前端 Nginx

SpringBoot中HTTP连接池的配置与优化

《SpringBoot中HTTP连接池的配置与优化》这篇文章主要为大家详细介绍了SpringBoot中HTTP连接池的配置与优化的相关知识,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一... 目录一、HTTP连接池的核心价值二、Spring Boot集成方案方案1:Apache HttpCl

C#实现高性能Excel百万数据导出优化实战指南

《C#实现高性能Excel百万数据导出优化实战指南》在日常工作中,Excel数据导出是一个常见的需求,然而,当数据量较大时,性能和内存问题往往会成为限制导出效率的瓶颈,下面我们看看C#如何结合EPPl... 目录一、技术方案核心对比二、各方案选型建议三、性能对比数据四、核心代码实现1. MiniExcel

Spring Boot Controller处理HTTP请求体的方法

《SpringBootController处理HTTP请求体的方法》SpringBoot提供了强大的机制来处理不同Content-Type​的HTTP请求体,这主要依赖于HttpMessageCo... 目录一、核心机制:HttpMessageConverter​二、按Content-Type​处理详解1.

Spring框架中@Lazy延迟加载原理和使用详解

《Spring框架中@Lazy延迟加载原理和使用详解》:本文主要介绍Spring框架中@Lazy延迟加载原理和使用方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐... 目录一、@Lazy延迟加载原理1.延迟加载原理1.1 @Lazy三种配置方法1.2 @Component

SpringBoot基于配置实现短信服务策略的动态切换

《SpringBoot基于配置实现短信服务策略的动态切换》这篇文章主要为大家详细介绍了SpringBoot在接入多个短信服务商(如阿里云、腾讯云、华为云)后,如何根据配置或环境切换使用不同的服务商,需... 目录目标功能示例配置(application.yml)配置类绑定短信发送策略接口示例:阿里云 & 腾