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

news/2024/9/17 7:09:55/ 标签: php, http, 开发语言
http://www.w3.org/2000/svg" style="display: none;">

摘要

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

https://i-blog.csdnimg.cn/direct/632a6995882f4977a725e7e3cfef5df2.png" alt="在这里插入图片描述" />

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

http://localhost:8787

https://i-blog.csdnimg.cn/direct/d91d2c817bb54895bdec4875bf51d8d8.png" alt="在这里插入图片描述" />

代码结构

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

https://i-blog.csdnimg.cn/direct/d27ab585d1084b0c9d52a8389436cde6.png" alt="在这里插入图片描述" />

一个简单的示例

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

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

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


http://www.ppmy.cn/news/1522026.html

相关文章

计算机基础知识-2

x86架构的寄存器 AT&T汇编和Intel汇编的区别 每取出完一条指令&#xff0c;PC会自动&#xff0b;"1"&#xff0c;指向下一条要被执行的指令。这里的1是指下一条指令&#xff0c;但是指令本身可能占用多个字节&#xff0c;所以地址可能不是以1叠加 当前执行的是10…

实现简单聊天

管道通信 目的&#xff1a; 实现 xxz 与 zy 之间的通讯聊天 功能&#xff1a; 同一网络下进行的模拟通讯实现 缺点&#xff1a;没有涉及到网络的通信&#xff0c;只是简单的进程之间模拟的通信 采用到的技术点&#xff1a; 1 有名管道 优点&#xff1a; 在文件系统中作为一…

【自然语言处理】调用NLTK数据失败‘wordnet‘和‘punkt‘不存在[Errno 11004]问题解决

wordnet报错 明明已经按照了nltk包&#xff0c;但使用 WordNet 语料库时依然报错提示数据不存&#xff0c;依据以下代码在python中下载wordnet仍然报错&#xff1a; import nltk nltk.download(wordnet)运行后始终提示&#xff1a; [nltk_data] Error loading wordnet: <…

大白话【12】网络虚拟化

1.VMware网络三种工作模式 1.桥接网络&#xff1a;虚拟一个交换机在内存里面&#xff08;ovs&#xff09;&#xff0c;叫vmnet0如果你的物理机可以上外网&#xff0c;那么虚拟机也可以上外网2.NAT网络&#xff1a;将内网转换成外网叫vmnet8桥接和NAT既然都可以上外网&#xff…

PCDN 技术如何保障网络安全(壹)

在当今数字化时代&#xff0c;网络安全成为了至关重要的问题。PCDN&#xff08;Peer-to-Peer Content Delivery Network&#xff09;技术在提升内容分发效率的同时&#xff0c;也采取了一系列措施来保障网络安全。 一、加密传输与数据保护 PCDN 技术采用先进的加密算法对传输中…

[linux 驱动]platform总线设备驱动详解与实战

目录 1 描述 2 结构体 2.1 bus_type 2.2 platform_bus_type 2.2.1 platform_match 2.2.2 platform_uevent 2.2.3 platform_dma_configure 2.2.4 platform_dev_pm_ops 2.3 platform_driver 2.4 platform_device 3 platform注册 3.1 platform_driver_register 3.1.1 …

【网络安全 | 甲方建设】开发、测试、部署关键词详解

原创文章,不得转载。 文章目录 需求与开发原生需求重构新增服务调用测试与覆盖率单元测试增量代码单测UT覆盖率CR前覆盖率APP回归测试回归测试自动化冒烟部署与环境Stable环境部署待部署服务名称代码分支待部署代码分支PR链接灰度发布蓝绿发布Canary发布热修复(Hotfix)Mock环…

2024年高教杯国赛(B题)数学建模竞赛解题思路|完整代码论文集合

我是Tina表姐&#xff0c;毕业于中国人民大学&#xff0c;对数学建模的热爱让我在这一领域深耕多年。我的建模思路已经帮助了百余位学习者和参赛者在数学建模的道路上取得了显著的进步和成就。现在&#xff0c;我将这份宝贵的经验和知识凝练成一份全面的解题思路与代码论文集合…

828华为云征文 | Flexus X实例CPU、内存及磁盘性能实测与分析

引言 随着云计算的普及&#xff0c;企业对于云资源的需求日益增加&#xff0c;而选择一款性能强劲、稳定性高的云实例成为了关键。华为云Flexus X实例作为华为云最新推出的高性能实例&#xff0c;旨在为用户提供更强的计算能力和更高的网络带宽支持。最近华为云828 B2B企业节正…

docker registry 仓库加密

docker registry 仓库加密 1、背景 ​ 公司一直用的镜像仓库是docker registry&#xff0c;但是有个安全问题&#xff0c;就是仓库从web ui的浏览到镜像的拉取都是可以直接使用的&#xff0c;还是放到了公网上&#xff0c;只需要知道你的域名那就是畅通无阻了&#xff0c;可以…

Python 数据分析— Pandas 基本操作(上)

文章目录 学习内容&#xff1a;一、Series 创建及操作二、DataFram 的创建与操作三、Pandas 的读写操作四、选择指定行列数据 学习内容&#xff1a; 一、Series 创建及操作 ** Series : Pandas 的一种数据结构形式&#xff0c;可理解为含有索引的一维数组。** **&#xff08;…

数据分析-13-时间序列异常值检测的类型及常见的检测方法

参考时间序列异常值的分类及检测 参考异常值数据预警分析 1 时间序列异常的类型 时间序列异常检测是数据处理和分析的重要环节,广泛应用于量化交易、网络安全检测、自动驾驶汽车和大型工业设备日常维护等领域。在时间序列数据中,异常通常指的是与正常数据模式显著不同的数据…

西方社会学理论教程(侯均生)笔记

西方社会学理论 导言 一、学习《西方社会学理论》的目的 通过学习社会学发展史上各个思想名家的研究方法和社会理论&#xff0c;在自觉模仿和实践的基础上&#xff0c;形成自己看待社会现象和社会问题的思维方式和理论视角。 二、社会学发展史 &#xff08;一&#xff09;古…

【架构-29】RPC

RPC&#xff08;Remote Procedure Call&#xff0c;远程过程调用&#xff09;框架是一种用于实现分布式系统中不同节点之间通信和调用的技术框架。 一、为什么需要 RPC&#xff1f; 实现分布式系统 在现代的软件应用中&#xff0c;尤其是大规模的企业级应用和互联网服务&…

设计模式学习-简单的命令模式例子

上一章节介绍过了命令模式&#xff0c;这一篇文章就简单的做一个小案例来巩固学习 搭建场景 简单的搭建一个场景就行 &#xff0c;随便准备一个物体放在场景中位置Reset一下即可。 代码编写 定义接口&#xff08;或者抽象类&#xff09;ICommand 用来规范Command的行为。注意…

Spring及Springboot事件机制详解

程序设计的所有原则和方法论都是追求一件事——简单——功能简单、依赖简单、修改简单、理解简单。因为只有简单才好用&#xff0c;简单才好维护。因此&#xff0c;不应该以评论艺术品的眼光来评价程序设计是否优秀&#xff0c;程序设计的艺术不在于有多复杂多深沉&#xff0c;…

idea配置svn发现安装的svn中的bin目录下没有svn.exe文件

问题描述 使用idea配置svn时&#xff0c;发现安装的svn没有svn.exe文件 解决方法 1、双击svn安装包&#xff0c;找到【modify】 2、默认安装时&#xff0c;没有安装command line client tools&#xff0c;里面是有svn.exe 3、选择will be installed on local hard drive 4、…

x264 编码器 AArch64汇编系列:deblock 去块滤波相关汇编函数

deblock 在x264_deblock_init函数中定义各种 deblock 实现的方法: 以亮度分量垂直方向滤波为例 c 语言实现亮度分量垂直滤波函数:deblock_v_luma_cstatic ALWAYS_INLINE void deblock_edge_luma_c( pixel *pix, intptr_t xstride, int alpha

【个人笔记】VCS工具与命令

Title&#xff1a;VCS工具学习 一 介绍 是什么&#xff1f; VCS (Verilog Compiler Simulator) 是synopsys的verilog 仿真软件&#xff0c;竞品有Mentor公司的Modelsim、Cadence公司的NC-Verilog、Verilog—XL. VCS能够 分析、编译 HDL的design code&#xff0c;同时内置了 仿…

笔记本电脑在跑模型或日常使用中突然白屏的解决办法

文章目录 前言解决方案总结 前言 这段时间我注意到在跑模型或是加载一些大文件的时候&#xff0c;电脑经常会突然白屏&#xff0c;这种问题在日常生活中也时常发生&#xff0c;下面会提供快速有效的解决方法&#xff0c;希望能对大家有所帮助。 解决方案 按快捷键 C t r l A…