swoole框架-swoft初体验swoft环境搭建体验http服务体验ws服务初体验

swoole框架-swoft初体验

没有swoole之前,php一直被"誉“为世界上最好的语言。swoole横空出世后,php就成了宇宙最好的语言了...

关于swoole的基础使用,详见 2018年swoole实战1-初识swoole 系列。

swoft是基于swoole的高性能协程全栈框架。看了 swoft官网介绍, 瞬间觉得是一个牛逼闪闪的框架。

想要使用swoole,如果自己手工造一个框架,时间成本太高,而且对自己的代码质量没什么信心(好吧,这才是主要原因...),如果将swoole与流行的框架,如laravel,yii2,thinkphp结合,会遇到不少坑,而且这些框架显得过于笨重。权衡之下,swoft这种专为swoole为生的框架,对于懒人来说,就很适合了。使用swoft的缺点在于这个框架用的人目前并不多,基本上除了官方文档,没有其他学习资源,也没找到基于swoft的开源项目。

swoft环境搭建

安装swoft的前提是已经安装了swoole

使用composer安装swoft, 想进一步了解composer的同学,请支持 这一次,真正掌握composer

composer create-project swoft/swoft swoft

进入swoft目录,查看版本信息:

☁  swoft [master] ⚡ php bin/swoft -v
 ____                __ _
/ ___|_      _____  / _| |_
\___ \ \ /\ / / _ \| |_| __|
 ___) \ V  V / (_) |  _| |_
|____/ \_/\_/ \___/|_|  \__|

swoft: 1.0.0, php: 7.1.19, swoole: 4.0.3

体验http服务

由于swoft的websocket服务是基于http服务的,所以只需开启ws服务:

☁  swoft [master] ⚡ sudo php bin/swoft ws:start

swoft开启ws服务

默认情况下,启用的是80端口,可在.env文件中指定端口

访问 http://127.0.0.1/

就能看到欢迎页面:

swoft欢迎页

这个欢迎页面对应的控制器是:

swoft/app/Controllers/IndexController.php 的 index 方法

控制器与路由的对应关系是通过注解路由来实现的,简单说,就是在控制器和方法的注释中指定路由

注解路由

我们添加一个方法来测试下:

swoft/app/Controllers/DemoController.php

新增test方法

/**
  * @RequestMapping("test")
  */
public function test()
{
    return '你就是传说中的注解路由?';
}

路由构成

访问 http://127.0.0.1/demo2/test

路由

体验ws服务

首先开启swoft自带的开发工具,具体操作参考 DevTool 配置

访问 http://127.0.0.1/__devtool/ws/test

devtool

在ws提供的文本域可以调试ws服务:

ws测试

ws://127.0.0.1/__devtool 对应的控制器是 swoft/vendor/swoft/devtool/src/WebSocket/DevToolController.php

初体验

swoft将swoole的功能进行了更易使用的封装与调用,并提供了很酷的开发工具。

想要学习swoft的,先将官方文档大概看两遍...

如果觉得官方文档语焉不详,希望我能多写一些swoft的实例文章,请给予打赏鼓励,你的认可对我很重要...

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏Java架构师学习

深度学习Dubbo系列(入门开篇)一、背景二、架构三、需求四、用法五、快速启动

18930
来自专栏即时通讯技术

移动端IM开发需要面对的技术问题

P2P多见于局域网内聊天工具,典型的应用有:飞鸽传书、天网Maze(你懂的)等。这类软件在启动后一般做两件事情:

17010
来自专栏风口上的猪的文章

.NET面试题系列[16] - 多线程概念(1)

这篇文章主要是各个百科中的一些摘抄,简述了进程和线程的来源,为什么出现了进程和线程。

24320
来自专栏杨建荣的学习笔记

Oracle 12C打补丁的简单尝试(r10笔记第55天)

最近在服务器盘点的时候,发现测试环境还是值得整合一下,因为服务器资源老旧,整体配置不高,服务器资源使用率不高,业务要求不高,多个实例分散在多台服务器上,要考虑灾...

39980
来自专栏张善友的专栏

zookeeper 分布式锁服务

分布式锁服务在大家的项目中或许用的不多,因为大家都把排他放在数据库那一层来挡。当大量的行锁、表锁、事务充斥着数据库的时候。一般web应用很多的瓶颈都在数据库上,...

23280
来自专栏DevOps时代的专栏

微服务之基于Docker的分布式企业级实践

35830
来自专栏企鹅号快讯

专为渗透测试人员设计的 Python 工具大合集

如果你对漏洞挖掘、逆向工程分析或渗透测试感兴趣的话,我第一个要推荐给你的就是Python编程语言。Python不仅语法简单上手容易,而且它还有大量功能强大的库和...

26280
来自专栏FreeBuf

点击一张图片背后的风险

* 本文原创作者:mscb,本文属FreeBuf原创奖励计划,未经许可禁止转载 你相信吗?仅仅是因为你点击了某个你一只在访问网站里的一张图片,导致你的用...

26870
来自专栏程序你好

一个微服务架构的简单示例

50730
来自专栏芋道源码1024

【追光者系列】HikariCP 连接池配多大合适(第一弹)?

首先声明一下观点:How big should HikariCP be? Not how big but rather how small!连接池的大小不是设置...

23100

扫码关注云+社区

领取腾讯云代金券